mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 22:37:03 +05:30
Move our UrlLauncherAmbient to individual composables
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
906cfb5e43
commit
ca77d3cf2a
4 changed files with 12 additions and 9 deletions
|
@ -9,7 +9,6 @@ import androidx.compose.material.BottomNavigationItem
|
|||
import androidx.compose.material.Scaffold
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Providers
|
||||
import androidx.compose.runtime.ambientOf
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.platform.setContent
|
||||
import androidx.navigation.compose.KEY_ROUTE
|
||||
|
@ -26,10 +25,9 @@ import dev.msfjarvis.lobsters.ui.HottestPosts
|
|||
import dev.msfjarvis.lobsters.ui.LobstersTheme
|
||||
import dev.msfjarvis.lobsters.ui.SavedPosts
|
||||
import dev.msfjarvis.lobsters.urllauncher.UrlLauncher
|
||||
import dev.msfjarvis.lobsters.urllauncher.UrlLauncherAmbient
|
||||
import javax.inject.Inject
|
||||
|
||||
val UrlLauncherAmbient = ambientOf<UrlLauncher> { error("Needs to be provided") }
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MainActivity : AppCompatActivity() {
|
||||
@Inject lateinit var urlLauncher: UrlLauncher
|
||||
|
@ -89,10 +87,10 @@ fun LobstersApp(
|
|||
) {
|
||||
NavHost(navController, startDestination = Destination.Hottest.route) {
|
||||
composable(Destination.Hottest.route) {
|
||||
HottestPosts(urlLauncher = urlLauncher, viewModel = viewModel)
|
||||
HottestPosts(viewModel = viewModel)
|
||||
}
|
||||
composable(Destination.Saved.route) {
|
||||
SavedPosts(urlLauncher = urlLauncher, viewModel = viewModel)
|
||||
SavedPosts(viewModel = viewModel)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,15 +9,15 @@ import androidx.compose.runtime.getValue
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import dev.msfjarvis.lobsters.data.LobstersViewModel
|
||||
import dev.msfjarvis.lobsters.urllauncher.UrlLauncher
|
||||
import dev.msfjarvis.lobsters.urllauncher.UrlLauncherAmbient
|
||||
|
||||
@Composable
|
||||
fun HottestPosts(
|
||||
urlLauncher: UrlLauncher,
|
||||
viewModel: LobstersViewModel,
|
||||
) {
|
||||
val posts by viewModel.posts.collectAsState()
|
||||
val listState = rememberLazyListState()
|
||||
val urlLauncher = UrlLauncherAmbient.current
|
||||
|
||||
if (posts.isEmpty()) {
|
||||
EmptyList(saved = false)
|
||||
|
|
|
@ -9,15 +9,15 @@ import androidx.compose.runtime.getValue
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import dev.msfjarvis.lobsters.data.LobstersViewModel
|
||||
import dev.msfjarvis.lobsters.urllauncher.UrlLauncher
|
||||
import dev.msfjarvis.lobsters.urllauncher.UrlLauncherAmbient
|
||||
|
||||
@Composable
|
||||
fun SavedPosts(
|
||||
urlLauncher: UrlLauncher,
|
||||
viewModel: LobstersViewModel,
|
||||
) {
|
||||
val posts by viewModel.savedPosts.collectAsState()
|
||||
val listState = rememberLazyListState()
|
||||
val urlLauncher = UrlLauncherAmbient.current
|
||||
|
||||
if (posts.isEmpty()) {
|
||||
EmptyList(saved = true)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package dev.msfjarvis.lobsters.urllauncher
|
||||
|
||||
import androidx.compose.runtime.ambientOf
|
||||
|
||||
val UrlLauncherAmbient = ambientOf<UrlLauncher> { error("Needs to be provided") }
|
Loading…
Add table
Add a link
Reference in a new issue