Update drawer

This commit is contained in:
Sad Ellie 2023-10-13 11:50:35 +03:00
parent 9e80613794
commit 4e28cdecc5
2 changed files with 39 additions and 11 deletions

View File

@ -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)
)
}

View File

@ -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