mirror of
https://github.com/smyalygames/checklist-tester.git
synced 2025-07-08 00:11:00 +02:00
feat(connector): add di for projects
This commit is contained in:
parent
08b6c86283
commit
6cb8f46594
@ -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
|
||||
|
@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user