feat(connector): add di for projects

This commit is contained in:
Anthony 2024-04-04 10:15:32 +02:00
parent 08b6c86283
commit 6cb8f46594
2 changed files with 14 additions and 5 deletions

View File

@ -12,7 +12,7 @@ import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow import cafe.adriel.voyager.navigator.currentOrThrow
object NoProjects : Screen { class NoProjects : Screen {
@Composable @Composable
override fun Content() { override fun Content() {
val navigator = LocalNavigator.currentOrThrow val navigator = LocalNavigator.currentOrThrow

View File

@ -1,8 +1,10 @@
package tab.project package tab.project
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import cafe.adriel.voyager.navigator.CurrentScreen import cafe.adriel.voyager.koin.getScreenModel
import cafe.adriel.voyager.navigator.Navigator import cafe.adriel.voyager.navigator.Navigator
import cafe.adriel.voyager.navigator.tab.Tab import cafe.adriel.voyager.navigator.tab.Tab
import cafe.adriel.voyager.navigator.tab.TabOptions import cafe.adriel.voyager.navigator.tab.TabOptions
@ -10,8 +12,9 @@ import connector.composeapp.generated.resources.Res
import connector.composeapp.generated.resources.folder_24px import connector.composeapp.generated.resources.folder_24px
import org.jetbrains.compose.resources.ExperimentalResourceApi import org.jetbrains.compose.resources.ExperimentalResourceApi
import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.painterResource
import tab.LoadingScreen
object Projects : Tab { class Projects : Tab {
@OptIn(ExperimentalResourceApi::class) @OptIn(ExperimentalResourceApi::class)
override val options: TabOptions override val options: TabOptions
@Composable @Composable
@ -30,8 +33,14 @@ object Projects : Tab {
@Composable @Composable
override fun Content() { override fun Content() {
Navigator(ListProjects()) { val screenModel = getScreenModel<ProjectsScreenModel>()
CurrentScreen() val state by screenModel.state.collectAsState()
when (state) {
is ProjectsScreenModel.State.UnInit -> screenModel.projectExists()
is ProjectsScreenModel.State.Init -> Navigator(NoProjects())
is ProjectsScreenModel.State.Loading -> Navigator(LoadingScreen("Projects"))
is ProjectsScreenModel.State.Result -> Navigator(ListProjects())
} }
} }
} }