Move our UrlLauncherAmbient to individual composables

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-10-29 16:25:12 +05:30
parent 906cfb5e43
commit ca77d3cf2a
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
4 changed files with 12 additions and 9 deletions

View file

@ -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)
}
}
}

View file

@ -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)

View file

@ -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)

View file

@ -0,0 +1,5 @@
package dev.msfjarvis.lobsters.urllauncher
import androidx.compose.runtime.ambientOf
val UrlLauncherAmbient = ambientOf<UrlLauncher> { error("Needs to be provided") }