update scaffolds
This commit is contained in:
+1
-2
@@ -17,7 +17,7 @@ import ru.shadowsparky.vbox.shared.presentation.nav.Route
|
||||
|
||||
@Composable
|
||||
fun createNavigationList(): List<NavigationEntry<Route>> {
|
||||
val list = listOf(
|
||||
return listOf(
|
||||
NavigationEntry(
|
||||
Route.default,
|
||||
stringResource(Res.string.recommendations),
|
||||
@@ -44,7 +44,6 @@ fun createNavigationList(): List<NavigationEntry<Route>> {
|
||||
painterResource(Res.drawable.settings)
|
||||
)
|
||||
)
|
||||
return list
|
||||
}
|
||||
|
||||
fun List<NavigationEntry<*>>.findTitle(route: Route): String? {
|
||||
|
||||
+3
-7
@@ -29,7 +29,7 @@ fun MainScreen(route: Route, child: Child, root: VBoxRootComponent) {
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun BaseMainScreen(
|
||||
fun MainScreenScaffold(
|
||||
appBar: @Composable () -> Unit,
|
||||
route: Route,
|
||||
onNavigate: (Route) -> Unit,
|
||||
@@ -47,13 +47,9 @@ fun BaseMainScreen(
|
||||
@Composable
|
||||
private fun MainScreenInternal(route: Route, child: Child, onNavigate: (Route) -> Unit) {
|
||||
val navList = createNavigationList()
|
||||
BaseMainScreen(
|
||||
MainScreenScaffold(
|
||||
appBar = {
|
||||
navList.findTitle(route)?.let { title ->
|
||||
TopAppBar(
|
||||
title = { Text(title) }
|
||||
)
|
||||
}
|
||||
navList.findTitle(route)?.let { title -> TopAppBar(title = { Text(title) }) }
|
||||
},
|
||||
route = route,
|
||||
onNavigate = onNavigate,
|
||||
|
||||
-29
@@ -1,15 +1,9 @@
|
||||
package ru.shadowsparky.vbox.shared.presentation
|
||||
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.TopAppBarScrollBehavior
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import com.seiko.imageloader.LocalImageLoader
|
||||
import ru.shadowsparky.koin
|
||||
import ru.shadowsparky.ui.nav.Nav
|
||||
import ru.shadowsparky.updater.presentation.UpdateDialog
|
||||
import ru.shadowsparky.vbox.shared.presentation.list.VideoScreen
|
||||
@@ -27,11 +21,6 @@ import ru.shadowsparky.vbox.shared.presentation.settings.register.RegisterScreen
|
||||
import ru.shadowsparky.vbox.shared.presentation.settings.serv.EditServScreen
|
||||
import ru.shadowsparky.vbox.shared.presentation.settings.tag.TagScreen
|
||||
|
||||
@Composable
|
||||
fun Modifier.imePaddingInternal(): Modifier {
|
||||
return koin.get<UiConfiguration>().imePadding(this)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun Nav(root: VBoxRootComponent, onAttach: @Composable () -> Unit = {}) {
|
||||
CompositionLocalProvider(
|
||||
@@ -74,21 +63,3 @@ private fun NavInternal(root: VBoxRootComponent, onAttach: @Composable () -> Uni
|
||||
UpdateDialog(root.updateComponent)
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun AppScaffold(
|
||||
scrollBehavior: TopAppBarScrollBehavior? = null,
|
||||
snackbarState: SnackbarHostState? = null,
|
||||
modifier: Modifier = Modifier,
|
||||
content: @Composable (padding: PaddingValues) -> Unit,
|
||||
appBar: @Composable () -> Unit
|
||||
) {
|
||||
ru.shadowsparky.ui.AppScaffold(
|
||||
modifier,
|
||||
scrollBehavior,
|
||||
snackbarState,
|
||||
content = content,
|
||||
appBar = { appBar() }
|
||||
)
|
||||
}
|
||||
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
package ru.shadowsparky.vbox.shared.presentation
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import org.koin.core.annotation.Single
|
||||
|
||||
@Single
|
||||
class UiConfiguration {
|
||||
@Composable
|
||||
fun imePadding(modifier: Modifier): Modifier {
|
||||
return modifier
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -11,14 +11,14 @@ import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.chat.presentation.ChatComponent
|
||||
import ru.shadowsparky.chat.presentation.ChatContent
|
||||
import ru.shadowsparky.ui.components.TopAppBar
|
||||
import ru.shadowsparky.vbox.shared.presentation.BaseMainScreen
|
||||
import ru.shadowsparky.vbox.shared.presentation.MainScreenScaffold
|
||||
import ru.shadowsparky.vbox.shared.presentation.nav.Route
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun ChatScreen(component: ChatComponent, route: Route, onNavigate: (Route) -> Unit) {
|
||||
val state by component.state.subscribeAsState()
|
||||
BaseMainScreen(
|
||||
MainScreenScaffold(
|
||||
appBar = {
|
||||
TopAppBar(title = { Text(stringResource(Res.string.chat_title_app_bar)) })
|
||||
},
|
||||
|
||||
+1
-1
@@ -39,12 +39,12 @@ import androidx.compose.ui.unit.dp
|
||||
import com.seiko.imageloader.rememberImagePainter
|
||||
import org.jetbrains.compose.resources.StringResource
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.ErrorContent
|
||||
import ru.shadowsparky.ui.components.LazyVerticalGrid
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.ui.theme.focusBorder
|
||||
import ru.shadowsparky.vbox.shared.domain.model.VideoItem
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
import ru.shadowsparky.vbox.shared.presentation.search.AppBarWithSearch
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
||||
+1
-1
@@ -5,8 +5,8 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
||||
+1
-1
@@ -25,7 +25,6 @@ import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
@@ -45,6 +44,7 @@ import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.BackButton
|
||||
import ru.shadowsparky.ui.components.ExpressiveLazyColumn
|
||||
import ru.shadowsparky.ui.components.IconButton
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.vbox.shared.domain.EpisodeOfflineVideo
|
||||
import ru.shadowsparky.vbox.shared.domain.OfflineState
|
||||
|
||||
+2
-2
@@ -41,7 +41,6 @@ import androidx.compose.material3.DropdownMenu
|
||||
import androidx.compose.material3.DropdownMenuItem
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -68,13 +67,14 @@ import com.seiko.imageloader.rememberImagePainter
|
||||
import org.jetbrains.compose.resources.painterResource
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.domain.Clip
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.BackButton
|
||||
import ru.shadowsparky.ui.components.ErrorContent
|
||||
import ru.shadowsparky.ui.components.IconButton
|
||||
import ru.shadowsparky.ui.components.LazyColumn
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.ui.components.TopAppBar
|
||||
import ru.shadowsparky.vbox.shared.domain.model.VideoDetails
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
import ru.shadowsparky.vbox.shared.presentation.getClipboardText
|
||||
import ru.shadowsparky.vbox.shared.presentation.settings.tag.LinkTagBottomSheet
|
||||
|
||||
|
||||
+2
-2
@@ -24,7 +24,6 @@ import androidx.compose.material3.CircularWavyProgressIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -44,15 +43,16 @@ import androidx.compose.ui.unit.dp
|
||||
import org.jetbrains.compose.resources.painterResource
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.domain.Clip
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.BackButton
|
||||
import ru.shadowsparky.ui.components.ErrorContent
|
||||
import ru.shadowsparky.ui.components.ExpressiveLazyColumn
|
||||
import ru.shadowsparky.ui.components.IconButton
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.ui.components.TopAppBar
|
||||
import ru.shadowsparky.vbox.shared.domain.OfflineState
|
||||
import ru.shadowsparky.vbox.shared.domain.OfflineVideo
|
||||
import ru.shadowsparky.vbox.shared.domain.model.Episode
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
import ru.shadowsparky.vbox.shared.presentation.getClipboardText
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
||||
+1
-1
@@ -20,13 +20,13 @@ import androidx.compose.ui.focus.FocusRequester
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.BackButton
|
||||
import ru.shadowsparky.ui.components.ErrorContent
|
||||
import ru.shadowsparky.ui.components.ExpressiveLazyColumn
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.ui.components.TopAppBar
|
||||
import ru.shadowsparky.vbox.shared.domain.model.Season
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
|
||||
+3
-3
@@ -15,7 +15,6 @@ import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material3.Checkbox
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -30,10 +29,11 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import org.jetbrains.compose.resources.painterResource
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.components.AlertContent
|
||||
import ru.shadowsparky.ui.components.IconButton
|
||||
import ru.shadowsparky.ui.components.LazyColumn
|
||||
import ru.shadowsparky.ui.components.TopAppBar
|
||||
import ru.shadowsparky.vbox.shared.domain.tag.TagInfo
|
||||
import ru.shadowsparky.vbox.shared.presentation.BaseMainScreen
|
||||
import ru.shadowsparky.vbox.shared.presentation.MainScreenScaffold
|
||||
import ru.shadowsparky.vbox.shared.presentation.list.VideoScreenContent
|
||||
import ru.shadowsparky.vbox.shared.presentation.nav.Route
|
||||
|
||||
@@ -42,7 +42,7 @@ import ru.shadowsparky.vbox.shared.presentation.nav.Route
|
||||
fun SavedMovieScreen(comp: SavedMovieComponent, route: Route, onNavigate: (Route) -> Unit) {
|
||||
val tags by comp.userTags.collectAsStateWithLifecycle(null)
|
||||
var filterBottomSheetVisible by rememberSaveable { mutableStateOf(false) }
|
||||
BaseMainScreen(
|
||||
MainScreenScaffold(
|
||||
appBar = {
|
||||
TopAppBar(
|
||||
title = { Text(stringResource(Res.string.saved_movies)) },
|
||||
|
||||
+4
-6
@@ -24,7 +24,6 @@ import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.LinearWavyProgressIndicator
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
@@ -65,8 +64,8 @@ import org.jetbrains.compose.resources.painterResource
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.components.AppBarWithSearch
|
||||
import ru.shadowsparky.ui.components.ExpressiveLazyColumn
|
||||
import ru.shadowsparky.vbox.shared.presentation.BaseMainScreen
|
||||
import ru.shadowsparky.vbox.shared.presentation.imePaddingInternal
|
||||
import ru.shadowsparky.ui.components.IconButton
|
||||
import ru.shadowsparky.vbox.shared.presentation.MainScreenScaffold
|
||||
import ru.shadowsparky.vbox.shared.presentation.nav.Route
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@@ -80,7 +79,7 @@ fun SearchScreen(
|
||||
var textFieldValue by rememberSaveable(stateSaver = TextFieldValue.Saver) {
|
||||
mutableStateOf(TextFieldValue())
|
||||
}
|
||||
BaseMainScreen(
|
||||
MainScreenScaffold(
|
||||
appBar = {
|
||||
SearchAppBar(
|
||||
textFieldValue = textFieldValue,
|
||||
@@ -153,8 +152,7 @@ fun OldSearchInfo(
|
||||
val keyboardController = LocalSoftwareKeyboardController.current
|
||||
val nestedScrollConnection = remember { HideKeyboardConnection { keyboardController } }
|
||||
ExpressiveLazyColumn(
|
||||
modifier = Modifier.nestedScroll(nestedScrollConnection)
|
||||
.imePaddingInternal(),
|
||||
modifier = Modifier.nestedScroll(nestedScrollConnection),
|
||||
contentPadding = contentPaddingValues,
|
||||
content = {
|
||||
section {
|
||||
|
||||
+1
-1
@@ -35,6 +35,7 @@ import androidx.compose.ui.text.input.ImeAction
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.BackButton
|
||||
import ru.shadowsparky.ui.components.ErrorAlert
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
@@ -42,7 +43,6 @@ import ru.shadowsparky.ui.components.PasswordTextField
|
||||
import ru.shadowsparky.vbox.shared.domain.model.EmptyLoginException
|
||||
import ru.shadowsparky.vbox.shared.domain.model.EmptyPasswordException
|
||||
import ru.shadowsparky.vbox.shared.domain.model.LoginException
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
|
||||
@Composable
|
||||
fun AuthScreen(comp: AuthComponent) {
|
||||
|
||||
+1
-1
@@ -32,10 +32,10 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.launch
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.BackButton
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.ui.components.PasswordTextField
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
import ru.shadowsparky.vbox.shared.presentation.settings.auth.AuthState
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
||||
+2
-2
@@ -11,7 +11,7 @@ import androidx.compose.foundation.text.KeyboardActions
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import ru.shadowsparky.ui.components.IconButton
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -34,10 +34,10 @@ import androidx.compose.ui.text.input.TextFieldValue
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.jetbrains.compose.resources.painterResource
|
||||
import org.jetbrains.compose.resources.stringResource
|
||||
import ru.shadowsparky.ui.AppScaffold
|
||||
import ru.shadowsparky.ui.components.BackButton
|
||||
import ru.shadowsparky.ui.components.Loading
|
||||
import ru.shadowsparky.ui.components.TopAppBar
|
||||
import ru.shadowsparky.vbox.shared.presentation.AppScaffold
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class, ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
|
||||
Reference in New Issue
Block a user