diff --git a/connector/composeApp/src/desktopMain/kotlin/tab/project/Projects.kt b/connector/composeApp/src/desktopMain/kotlin/tab/project/Projects.kt index d2c0514..38c7835 100644 --- a/connector/composeApp/src/desktopMain/kotlin/tab/project/Projects.kt +++ b/connector/composeApp/src/desktopMain/kotlin/tab/project/Projects.kt @@ -1,7 +1,8 @@ package tab.project -import androidx.compose.runtime.* -import cafe.adriel.voyager.koin.getScreenModel +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import cafe.adriel.voyager.navigator.CurrentScreen import cafe.adriel.voyager.navigator.Navigator import cafe.adriel.voyager.navigator.tab.Tab import cafe.adriel.voyager.navigator.tab.TabOptions @@ -9,7 +10,6 @@ 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 class Projects : Tab { @OptIn(ExperimentalResourceApi::class) @@ -30,17 +30,8 @@ class Projects : Tab { @Composable override fun Content() { - val screenModel = getScreenModel() - val state by screenModel.state.collectAsState() - - when (val s = state) { - is ProjectState.Init -> Navigator(NoProjects()) - is ProjectState.Loading -> Navigator(LoadingScreen("Projects")) - is ProjectState.Result -> Navigator(ListProjects(s.projects)) - } - - LaunchedEffect(currentCompositeKeyHash) { - screenModel.projectExists() + Navigator(ProjectsContent()) { + CurrentScreen() } } } diff --git a/connector/composeApp/src/desktopMain/kotlin/tab/project/ProjectsContent.kt b/connector/composeApp/src/desktopMain/kotlin/tab/project/ProjectsContent.kt new file mode 100644 index 0000000..00ac19d --- /dev/null +++ b/connector/composeApp/src/desktopMain/kotlin/tab/project/ProjectsContent.kt @@ -0,0 +1,26 @@ +package tab.project + +import androidx.compose.runtime.* +import cafe.adriel.voyager.core.screen.Screen +import cafe.adriel.voyager.koin.getScreenModel +import tab.LoadingScreen + +class ProjectsContent : Screen { + @Composable + override fun Content() { + val screenModel = getScreenModel() + val state by screenModel.state.collectAsState() + + when (val s = state) { + is ProjectState.Init -> NoProjects().Content() + is ProjectState.Loading -> LoadingScreen("Projects").Content() + is ProjectState.Result -> ListProjects(s.projects).Content() + } + + + LaunchedEffect(currentCompositeKeyHash) { + screenModel.projectExists() + } + } +} +