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.currentOrThrow
object NoProjects : Screen {
class NoProjects : Screen {
@Composable
override fun Content() {
val navigator = LocalNavigator.currentOrThrow

View File

@ -1,8 +1,10 @@
package tab.project
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
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.tab.Tab
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 org.jetbrains.compose.resources.ExperimentalResourceApi
import org.jetbrains.compose.resources.painterResource
import tab.LoadingScreen
object Projects : Tab {
class Projects : Tab {
@OptIn(ExperimentalResourceApi::class)
override val options: TabOptions
@Composable
@ -30,8 +33,14 @@ object Projects : Tab {
@Composable
override fun Content() {
Navigator(ListProjects()) {
CurrentScreen()
val screenModel = getScreenModel<ProjectsScreenModel>()
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())
}
}
}