Add stuff to the theme and use theme.
This commit is contained in:
parent
944180882e
commit
db8113ccf6
7 changed files with 118 additions and 74 deletions
|
|
@ -6,6 +6,7 @@ import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
|
|
@ -63,7 +64,10 @@ class MainActivity : ComponentActivity() {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
snackbarHost = {
|
snackbarHost = {
|
||||||
SnackbarHost(hostState = LocalSnack.current)
|
SnackbarHost(
|
||||||
|
modifier = Modifier.navigationBarsPadding(),
|
||||||
|
hostState = LocalSnack.current,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.pixelized.rplexicon.ui.navigation
|
package com.pixelized.rplexicon.ui.navigation
|
||||||
|
|
||||||
import androidx.compose.animation.ExperimentalAnimationApi
|
import androidx.compose.animation.ExperimentalAnimationApi
|
||||||
|
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.material3.BottomAppBar
|
import androidx.compose.material3.BottomAppBar
|
||||||
|
|
@ -9,6 +10,8 @@ import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.NavigationBarItem
|
import androidx.compose.material3.NavigationBarItem
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
|
import androidx.compose.material3.SnackbarHost
|
||||||
|
import androidx.compose.material3.SnackbarHostState
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.TopAppBar
|
import androidx.compose.material3.TopAppBar
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
|
@ -17,6 +20,7 @@ import androidx.compose.runtime.Stable
|
||||||
import androidx.compose.runtime.derivedStateOf
|
import androidx.compose.runtime.derivedStateOf
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.staticCompositionLocalOf
|
import androidx.compose.runtime.staticCompositionLocalOf
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
|
|
@ -25,6 +29,7 @@ import androidx.compose.ui.unit.dp
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.google.accompanist.navigation.animation.AnimatedNavHost
|
import com.google.accompanist.navigation.animation.AnimatedNavHost
|
||||||
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
||||||
|
import com.pixelized.rplexicon.LocalSnack
|
||||||
import com.pixelized.rplexicon.R
|
import com.pixelized.rplexicon.R
|
||||||
import com.pixelized.rplexicon.ui.navigation.pages.LEXICON_ROUTE
|
import com.pixelized.rplexicon.ui.navigation.pages.LEXICON_ROUTE
|
||||||
import com.pixelized.rplexicon.ui.navigation.pages.composableLexicon
|
import com.pixelized.rplexicon.ui.navigation.pages.composableLexicon
|
||||||
|
|
@ -44,56 +49,66 @@ fun HomeNavHost(
|
||||||
bottomBarItems: List<BottomBarItem> = rememberBottomBarItems(navHostController = navHostController),
|
bottomBarItems: List<BottomBarItem> = rememberBottomBarItems(navHostController = navHostController),
|
||||||
startDestination: String = LEXICON_ROUTE
|
startDestination: String = LEXICON_ROUTE
|
||||||
) {
|
) {
|
||||||
Scaffold(
|
CompositionLocalProvider(
|
||||||
topBar = {
|
LocalSnack provides remember { SnackbarHostState() },
|
||||||
TopAppBar(
|
) {
|
||||||
title = {
|
Scaffold(
|
||||||
Text(text = stringResource(id = R.string.app_name))
|
topBar = {
|
||||||
},
|
TopAppBar(
|
||||||
)
|
title = {
|
||||||
},
|
Text(text = stringResource(id = R.string.app_name))
|
||||||
bottomBar = {
|
},
|
||||||
val selectedIndex = remember { mutableStateOf(0) }
|
)
|
||||||
BottomAppBar(
|
},
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
snackbarHost = {
|
||||||
tonalElevation = 0.dp,
|
SnackbarHost(
|
||||||
) {
|
hostState = LocalSnack.current,
|
||||||
bottomBarItems.forEachIndexed { index, item ->
|
)
|
||||||
val selectedItem = remember { derivedStateOf { selectedIndex.value == index } }
|
},
|
||||||
NavigationBarItem(
|
bottomBar = {
|
||||||
selected = selectedItem.value,
|
val selectedIndex = rememberSaveable { mutableStateOf(0) }
|
||||||
onClick = {
|
|
||||||
selectedIndex.value = index
|
BottomAppBar(
|
||||||
item.onClick.invoke()
|
containerColor = MaterialTheme.colorScheme.surface,
|
||||||
},
|
tonalElevation = 0.dp,
|
||||||
label = {
|
|
||||||
Text(text = stringResource(id = item.label))
|
|
||||||
},
|
|
||||||
icon = {
|
|
||||||
Icon(
|
|
||||||
painter = painterResource(id = item.icon),
|
|
||||||
contentDescription = "",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
content = { padding ->
|
|
||||||
CompositionLocalProvider(
|
|
||||||
LocalPageNavHost provides navHostController,
|
|
||||||
) {
|
|
||||||
AnimatedNavHost(
|
|
||||||
modifier = Modifier.padding(padding),
|
|
||||||
navController = navHostController,
|
|
||||||
startDestination = startDestination,
|
|
||||||
) {
|
) {
|
||||||
composableLexicon(lazyListState = lexiconListState)
|
bottomBarItems.forEachIndexed { index, item ->
|
||||||
composableQuestList()
|
val selectedItem = remember { derivedStateOf { selectedIndex.value == index } }
|
||||||
|
NavigationBarItem(
|
||||||
|
selected = selectedItem.value,
|
||||||
|
onClick = {
|
||||||
|
selectedIndex.value = index
|
||||||
|
item.onClick.invoke()
|
||||||
|
},
|
||||||
|
label = {
|
||||||
|
Text(text = stringResource(id = item.label))
|
||||||
|
},
|
||||||
|
icon = {
|
||||||
|
Icon(
|
||||||
|
painter = painterResource(id = item.icon),
|
||||||
|
contentDescription = "",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
content = { padding ->
|
||||||
|
CompositionLocalProvider(
|
||||||
|
LocalPageNavHost provides navHostController,
|
||||||
|
) {
|
||||||
|
AnimatedNavHost(
|
||||||
|
modifier = Modifier.padding(padding),
|
||||||
|
navController = navHostController,
|
||||||
|
startDestination = startDestination,
|
||||||
|
) {
|
||||||
|
composableLexicon(lazyListState = lexiconListState)
|
||||||
|
composableQuestList()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
)
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,8 @@ import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.animation.ExperimentalAnimationApi
|
import androidx.compose.animation.ExperimentalAnimationApi
|
||||||
import androidx.compose.animation.fadeIn
|
import androidx.compose.animation.fadeIn
|
||||||
import androidx.compose.animation.fadeOut
|
import androidx.compose.animation.fadeOut
|
||||||
import androidx.compose.animation.with
|
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
|
|
@ -58,6 +56,7 @@ import com.pixelized.rplexicon.ui.screens.lexicon.list.LexiconErrorUio.Permissio
|
||||||
import com.pixelized.rplexicon.ui.screens.lexicon.list.LexiconErrorUio.Structure
|
import com.pixelized.rplexicon.ui.screens.lexicon.list.LexiconErrorUio.Structure
|
||||||
import com.pixelized.rplexicon.ui.theme.LexiconTheme
|
import com.pixelized.rplexicon.ui.theme.LexiconTheme
|
||||||
import com.pixelized.rplexicon.utilitary.extentions.cell
|
import com.pixelized.rplexicon.utilitary.extentions.cell
|
||||||
|
import com.pixelized.rplexicon.utilitary.extentions.lexicon
|
||||||
import kotlinx.coroutines.flow.SharedFlow
|
import kotlinx.coroutines.flow.SharedFlow
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
|
@ -129,10 +128,6 @@ fun LexiconScreen(
|
||||||
private fun LexiconScreenContent(
|
private fun LexiconScreenContent(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
lazyColumnState: LazyListState,
|
lazyColumnState: LazyListState,
|
||||||
paddingValues: PaddingValues = PaddingValues(
|
|
||||||
top = 6.dp,
|
|
||||||
bottom = 8.dp + 16.dp + 56.dp + 16.dp,
|
|
||||||
),
|
|
||||||
refreshState: PullRefreshState,
|
refreshState: PullRefreshState,
|
||||||
refreshing: State<Boolean>,
|
refreshing: State<Boolean>,
|
||||||
isFabExpended: State<Boolean>,
|
isFabExpended: State<Boolean>,
|
||||||
|
|
@ -145,7 +140,7 @@ private fun LexiconScreenContent(
|
||||||
) {
|
) {
|
||||||
AnimatedContent(
|
AnimatedContent(
|
||||||
targetState = items.value.isEmpty(),
|
targetState = items.value.isEmpty(),
|
||||||
transitionSpec = { fadeIn() with fadeOut() },
|
transitionSpec = MaterialTheme.lexicon.animation.itemList,
|
||||||
label = "AnimatedLexicon"
|
label = "AnimatedLexicon"
|
||||||
) { empty ->
|
) { empty ->
|
||||||
when (empty) {
|
when (empty) {
|
||||||
|
|
@ -154,7 +149,7 @@ private fun LexiconScreenContent(
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.pullRefresh(state = refreshState),
|
.pullRefresh(state = refreshState),
|
||||||
state = lazyColumnState,
|
state = lazyColumnState,
|
||||||
contentPadding = paddingValues,
|
contentPadding = MaterialTheme.lexicon.dimens.itemListPadding,
|
||||||
) {
|
) {
|
||||||
items(count = 6) {
|
items(count = 6) {
|
||||||
LexiconItem(
|
LexiconItem(
|
||||||
|
|
@ -169,7 +164,7 @@ private fun LexiconScreenContent(
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.pullRefresh(state = refreshState),
|
.pullRefresh(state = refreshState),
|
||||||
state = lazyColumnState,
|
state = lazyColumnState,
|
||||||
contentPadding = paddingValues,
|
contentPadding = MaterialTheme.lexicon.dimens.itemListPadding,
|
||||||
) {
|
) {
|
||||||
items(
|
items(
|
||||||
items = items.value,
|
items = items.value,
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,9 @@ package com.pixelized.rplexicon.ui.screens.quest.list
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import androidx.compose.animation.AnimatedContent
|
import androidx.compose.animation.AnimatedContent
|
||||||
import androidx.compose.animation.ExperimentalAnimationApi
|
import androidx.compose.animation.ExperimentalAnimationApi
|
||||||
import androidx.compose.animation.fadeIn
|
|
||||||
import androidx.compose.animation.fadeOut
|
|
||||||
import androidx.compose.animation.with
|
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.heightIn
|
|
||||||
import androidx.compose.foundation.layout.systemBarsPadding
|
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.LazyListState
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
|
|
@ -20,7 +14,6 @@ import androidx.compose.material.ExperimentalMaterialApi
|
||||||
import androidx.compose.material.pullrefresh.PullRefreshState
|
import androidx.compose.material.pullrefresh.PullRefreshState
|
||||||
import androidx.compose.material.pullrefresh.pullRefresh
|
import androidx.compose.material.pullrefresh.pullRefresh
|
||||||
import androidx.compose.material.pullrefresh.rememberPullRefreshState
|
import androidx.compose.material.pullrefresh.rememberPullRefreshState
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
|
@ -31,7 +24,6 @@ import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
|
||||||
import androidx.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import com.pixelized.rplexicon.ui.composable.Loader
|
import com.pixelized.rplexicon.ui.composable.Loader
|
||||||
import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost
|
import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost
|
||||||
|
|
@ -78,10 +70,6 @@ fun QuestListScreen(
|
||||||
private fun QuestListContent(
|
private fun QuestListContent(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
lazyColumnState: LazyListState,
|
lazyColumnState: LazyListState,
|
||||||
paddingValues: PaddingValues = PaddingValues(
|
|
||||||
top = 8.dp,
|
|
||||||
bottom = 8.dp + 16.dp + 56.dp + 16.dp,
|
|
||||||
),
|
|
||||||
refreshState: PullRefreshState,
|
refreshState: PullRefreshState,
|
||||||
refreshing: State<Boolean>,
|
refreshing: State<Boolean>,
|
||||||
items: State<List<QuestItemUio>>,
|
items: State<List<QuestItemUio>>,
|
||||||
|
|
@ -93,7 +81,7 @@ private fun QuestListContent(
|
||||||
) {
|
) {
|
||||||
AnimatedContent(
|
AnimatedContent(
|
||||||
targetState = items.value.isEmpty(),
|
targetState = items.value.isEmpty(),
|
||||||
transitionSpec = { fadeIn() with fadeOut() },
|
transitionSpec = MaterialTheme.lexicon.animation.itemList,
|
||||||
label = "AnimatedQuests"
|
label = "AnimatedQuests"
|
||||||
) { empty ->
|
) { empty ->
|
||||||
when (empty) {
|
when (empty) {
|
||||||
|
|
@ -102,7 +90,7 @@ private fun QuestListContent(
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.pullRefresh(state = refreshState),
|
.pullRefresh(state = refreshState),
|
||||||
state = lazyColumnState,
|
state = lazyColumnState,
|
||||||
contentPadding = paddingValues,
|
contentPadding = MaterialTheme.lexicon.dimens.itemListPadding,
|
||||||
) {
|
) {
|
||||||
items(count = 2) {
|
items(count = 2) {
|
||||||
QuestItem(
|
QuestItem(
|
||||||
|
|
@ -117,7 +105,7 @@ private fun QuestListContent(
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.pullRefresh(state = refreshState),
|
.pullRefresh(state = refreshState),
|
||||||
state = lazyColumnState,
|
state = lazyColumnState,
|
||||||
contentPadding = paddingValues,
|
contentPadding = MaterialTheme.lexicon.dimens.itemListPadding,
|
||||||
) {
|
) {
|
||||||
items(
|
items(
|
||||||
items = items.value,
|
items = items.value,
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,11 @@ import androidx.compose.runtime.Stable
|
||||||
import androidx.compose.runtime.compositionLocalOf
|
import androidx.compose.runtime.compositionLocalOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.graphics.toArgb
|
import androidx.compose.ui.graphics.toArgb
|
||||||
|
import androidx.compose.ui.platform.LocalDensity
|
||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.WindowCompat
|
||||||
|
import com.pixelized.rplexicon.ui.theme.animation.LexiconAnimation
|
||||||
|
import com.pixelized.rplexicon.ui.theme.animation.lexiconAnimation
|
||||||
import com.pixelized.rplexicon.ui.theme.colors.LexiconColors
|
import com.pixelized.rplexicon.ui.theme.colors.LexiconColors
|
||||||
import com.pixelized.rplexicon.ui.theme.colors.darkColorScheme
|
import com.pixelized.rplexicon.ui.theme.colors.darkColorScheme
|
||||||
import com.pixelized.rplexicon.ui.theme.colors.lightColorScheme
|
import com.pixelized.rplexicon.ui.theme.colors.lightColorScheme
|
||||||
|
|
@ -28,6 +31,7 @@ val LocalLexiconTheme = compositionLocalOf<LexiconTheme> {
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
data class LexiconTheme(
|
data class LexiconTheme(
|
||||||
|
val animation: LexiconAnimation,
|
||||||
val colorScheme: LexiconColors,
|
val colorScheme: LexiconColors,
|
||||||
val shapes: LexiconShapes,
|
val shapes: LexiconShapes,
|
||||||
val dimens: LexiconDimens,
|
val dimens: LexiconDimens,
|
||||||
|
|
@ -39,8 +43,11 @@ fun LexiconTheme(
|
||||||
darkTheme: Boolean = isSystemInDarkTheme(),
|
darkTheme: Boolean = isSystemInDarkTheme(),
|
||||||
content: @Composable () -> Unit
|
content: @Composable () -> Unit
|
||||||
) {
|
) {
|
||||||
|
val density = LocalDensity.current
|
||||||
|
|
||||||
val lexiconTheme = remember {
|
val lexiconTheme = remember {
|
||||||
LexiconTheme(
|
LexiconTheme(
|
||||||
|
animation = lexiconAnimation(density = density),
|
||||||
colorScheme = when (darkTheme) {
|
colorScheme = when (darkTheme) {
|
||||||
true -> darkColorScheme()
|
true -> darkColorScheme()
|
||||||
else -> lightColorScheme()
|
else -> lightColorScheme()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.pixelized.rplexicon.ui.theme.animation
|
||||||
|
|
||||||
|
import androidx.compose.animation.AnimatedContentScope
|
||||||
|
import androidx.compose.animation.ContentTransform
|
||||||
|
import androidx.compose.animation.ExperimentalAnimationApi
|
||||||
|
import androidx.compose.animation.fadeIn
|
||||||
|
import androidx.compose.animation.fadeOut
|
||||||
|
import androidx.compose.animation.slideInVertically
|
||||||
|
import androidx.compose.animation.slideOutVertically
|
||||||
|
import androidx.compose.animation.with
|
||||||
|
import androidx.compose.runtime.Stable
|
||||||
|
import androidx.compose.ui.unit.Density
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
|
|
||||||
|
@Stable
|
||||||
|
@OptIn(ExperimentalAnimationApi::class)
|
||||||
|
data class LexiconAnimation constructor(
|
||||||
|
val itemList: AnimatedContentScope<Boolean>.() -> ContentTransform,
|
||||||
|
)
|
||||||
|
|
||||||
|
@OptIn(ExperimentalAnimationApi::class)
|
||||||
|
fun lexiconAnimation(
|
||||||
|
density: Density,
|
||||||
|
): LexiconAnimation = LexiconAnimation(
|
||||||
|
itemList = with(density) {
|
||||||
|
{ fadeIn() + slideInVertically { 8.dp.roundToPx() } with fadeOut() + slideOutVertically { 8.dp.roundToPx() } }
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.pixelized.rplexicon.ui.theme.dimen
|
package com.pixelized.rplexicon.ui.theme.dimen
|
||||||
|
|
||||||
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
|
|
@ -8,11 +9,17 @@ import androidx.compose.ui.unit.dp
|
||||||
@Stable
|
@Stable
|
||||||
@Immutable
|
@Immutable
|
||||||
data class LexiconDimens(
|
data class LexiconDimens(
|
||||||
val item: Dp
|
val item: Dp,
|
||||||
|
val itemListPadding: PaddingValues,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun lexiconDimen(
|
fun lexiconDimen(
|
||||||
item: Dp = 52.dp
|
item: Dp = 52.dp,
|
||||||
|
itemListPadding: PaddingValues = PaddingValues(
|
||||||
|
top = 8.dp,
|
||||||
|
bottom = 8.dp + 16.dp + 56.dp + 16.dp,
|
||||||
|
)
|
||||||
) = LexiconDimens(
|
) = LexiconDimens(
|
||||||
item = item,
|
item = item,
|
||||||
|
itemListPadding,
|
||||||
)
|
)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue