diff --git a/apps/vbox/client/androidApp/build.gradle.kts b/apps/vbox/client/androidApp/build.gradle.kts index 79d5ac1..9197523 100644 --- a/apps/vbox/client/androidApp/build.gradle.kts +++ b/apps/vbox/client/androidApp/build.gradle.kts @@ -7,7 +7,7 @@ plugins { alias(libs.plugins.convention.ktor.client) } -val appVersion = "1.26.0" +val appVersion = "1.26.2" android { buildFeatures { buildConfig = true } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c39eaf6..068969f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] activity-compose = "1.13.0" -material3-compose = "1.12.0-alpha03" +material3-compose = "1.11.0-alpha03" adaptiveLayout = "1.3.0-beta02" appcompat = "1.8.0" coil-compose = "3.5.0" diff --git a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/AppScaffold.kt b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/AppScaffold.kt index 5903714..547068b 100644 --- a/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/AppScaffold.kt +++ b/libs/ui/src/commonMain/kotlin/ru/shadowsparky/ui/AppScaffold.kt @@ -98,39 +98,53 @@ fun AppScaffold( } val blurState = rememberBlurState() CompositionLocalProvider(LocalBlurState provides blurState) { - when (navigationSuiteType) { - NavigationSuiteType.ShortNavigationBarCompact, - NavigationSuiteType.ShortNavigationBarMedium, - NavigationSuiteType.NavigationBar -> { - BottomBarScaffold( - modifier, - navigationEntries, - currentRoute, - appBar, - content, - scrollBehavior, - onSelectNavigation, - snackbarState - ) - } - else -> { - DynamicNavigationScaffold( - modifier, - navigationSuiteType, - navigationEntries, - currentRoute, - onSelectNavigation, - scrollBehavior, - appBar, - snackbarState, - content - ) + if (navigationEntries?.isNotEmpty() == true) { + when (navigationSuiteType) { + NavigationSuiteType.ShortNavigationBarCompact, + NavigationSuiteType.ShortNavigationBarMedium, + NavigationSuiteType.NavigationBar -> { + BottomBarScaffold( + modifier, + navigationEntries, + currentRoute, + appBar, + content, + scrollBehavior, + onSelectNavigation, + snackbarState + ) + } + + else -> { + DynamicNavigationScaffold( + modifier, + navigationSuiteType, + navigationEntries, + currentRoute, + onSelectNavigation, + scrollBehavior, + appBar, + snackbarState, + content + ) + } } + } else { + Scaffold( + modifier = if (scrollBehavior != null) { + modifier.nestedScroll(scrollBehavior.nestedScrollConnection) + } else { + modifier + }, + topBar = { appBar(scrollBehavior) }, + snackbarHost = { snackbarState?.let { SnackbarHost(it) } }, + content = content + ) } } } -@OptIn(ExperimentalMaterial3ExpressiveApi::class) +@OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalMaterial3Api::class) @Composable private fun DynamicNavigationScaffold( modifier: Modifier, @@ -194,6 +208,7 @@ private fun DynamicNavigationScaffold( } } +@OptIn(ExperimentalMaterial3Api::class) @Composable private fun BottomBarScaffold( modifier: Modifier,