mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-19 16:55:26 +02:00
Update drawer
This commit is contained in:
parent
9e80613794
commit
4e28cdecc5
@ -19,7 +19,7 @@
|
|||||||
package com.sadellie.unitto.core.ui.common
|
package com.sadellie.unitto.core.ui.common
|
||||||
|
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.automirrored.outlined.MenuOpen
|
import androidx.compose.material.icons.outlined.Menu
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@ -35,7 +35,7 @@ import com.sadellie.unitto.core.base.R
|
|||||||
fun MenuButton(onClick: () -> Unit) {
|
fun MenuButton(onClick: () -> Unit) {
|
||||||
IconButton(onClick = onClick) {
|
IconButton(onClick = onClick) {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.AutoMirrored.Outlined.MenuOpen,
|
Icons.Outlined.Menu,
|
||||||
contentDescription = stringResource(R.string.open_menu_description)
|
contentDescription = stringResource(R.string.open_menu_description)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -18,38 +18,66 @@
|
|||||||
|
|
||||||
package com.sadellie.unitto.core.ui.common
|
package com.sadellie.unitto.core.ui.common
|
||||||
|
|
||||||
|
import androidx.compose.animation.AnimatedContent
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
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.ModalDrawerSheet
|
import androidx.compose.material3.ModalDrawerSheet
|
||||||
import androidx.compose.material3.NavigationDrawerItemDefaults
|
import androidx.compose.material3.NavigationDrawerItemDefaults
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
|
||||||
import com.sadellie.unitto.core.base.R
|
import com.sadellie.unitto.core.base.R
|
||||||
import com.sadellie.unitto.core.base.TopLevelDestinations
|
import com.sadellie.unitto.core.base.TopLevelDestinations
|
||||||
import com.sadellie.unitto.core.ui.model.DrawerItems
|
import com.sadellie.unitto.core.ui.model.DrawerItems
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun UnittoDrawerSheet(
|
fun UnittoDrawerSheet(
|
||||||
modifier: Modifier,
|
modifier: Modifier,
|
||||||
tabs: List<DrawerItems>,
|
tabs: List<DrawerItems>,
|
||||||
currentDestination: String?,
|
currentDestination: String?,
|
||||||
onItemClick: (TopLevelDestinations) -> Unit
|
onItemClick: (TopLevelDestinations) -> Unit,
|
||||||
) {
|
) {
|
||||||
|
var showHello by remember { mutableStateOf(false) }
|
||||||
|
val interactionSource = remember {
|
||||||
|
MutableInteractionSource()
|
||||||
|
}
|
||||||
|
|
||||||
|
LaunchedEffect(showHello) {
|
||||||
|
if (showHello) {
|
||||||
|
delay(2000)
|
||||||
|
showHello = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ModalDrawerSheet(
|
ModalDrawerSheet(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
) {
|
) {
|
||||||
Text(
|
AnimatedContent(
|
||||||
text = stringResource(R.string.app_name).uppercase(),
|
targetState = showHello,
|
||||||
modifier = Modifier.padding(horizontal = 28.dp, vertical = 24.dp),
|
modifier = Modifier.clickable(
|
||||||
style = MaterialTheme.typography.titleLarge.copy(fontWeight = FontWeight.Medium, letterSpacing = 2.sp),
|
interactionSource = interactionSource,
|
||||||
color = MaterialTheme.colorScheme.primary
|
indication = null,
|
||||||
)
|
onClick = { showHello = true }
|
||||||
|
)
|
||||||
|
) { hello ->
|
||||||
|
Text(
|
||||||
|
text = if (hello) stringResource(R.string.hello_label) else stringResource(R.string.app_name).uppercase(),
|
||||||
|
modifier = Modifier.padding(horizontal = 28.dp, vertical = 24.dp),
|
||||||
|
style = MaterialTheme.typography.titleLarge,
|
||||||
|
color = MaterialTheme.colorScheme.primary
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
tabs.forEach { drawerItem ->
|
tabs.forEach { drawerItem ->
|
||||||
val selected = drawerItem.destination.start == currentDestination
|
val selected = drawerItem.destination.start == currentDestination
|
||||||
|
Loading…
x
Reference in New Issue
Block a user