mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-19 08:45:27 +02:00
Update drawer
This commit is contained in:
parent
9e80613794
commit
4e28cdecc5
@ -19,7 +19,7 @@
|
||||
package com.sadellie.unitto.core.ui.common
|
||||
|
||||
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.IconButton
|
||||
import androidx.compose.runtime.Composable
|
||||
@ -35,7 +35,7 @@ import com.sadellie.unitto.core.base.R
|
||||
fun MenuButton(onClick: () -> Unit) {
|
||||
IconButton(onClick = onClick) {
|
||||
Icon(
|
||||
Icons.AutoMirrored.Outlined.MenuOpen,
|
||||
Icons.Outlined.Menu,
|
||||
contentDescription = stringResource(R.string.open_menu_description)
|
||||
)
|
||||
}
|
||||
|
@ -18,38 +18,66 @@
|
||||
|
||||
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.material3.MaterialTheme
|
||||
import androidx.compose.material3.ModalDrawerSheet
|
||||
import androidx.compose.material3.NavigationDrawerItemDefaults
|
||||
import androidx.compose.material3.Text
|
||||
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.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
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.TopLevelDestinations
|
||||
import com.sadellie.unitto.core.ui.model.DrawerItems
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
@Composable
|
||||
fun UnittoDrawerSheet(
|
||||
modifier: Modifier,
|
||||
tabs: List<DrawerItems>,
|
||||
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(
|
||||
modifier = modifier
|
||||
) {
|
||||
AnimatedContent(
|
||||
targetState = showHello,
|
||||
modifier = Modifier.clickable(
|
||||
interactionSource = interactionSource,
|
||||
indication = null,
|
||||
onClick = { showHello = true }
|
||||
)
|
||||
) { hello ->
|
||||
Text(
|
||||
text = stringResource(R.string.app_name).uppercase(),
|
||||
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.copy(fontWeight = FontWeight.Medium, letterSpacing = 2.sp),
|
||||
style = MaterialTheme.typography.titleLarge,
|
||||
color = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
}
|
||||
|
||||
tabs.forEach { drawerItem ->
|
||||
val selected = drawerItem.destination.start == currentDestination
|
||||
|
Loading…
x
Reference in New Issue
Block a user