fix(compose): adjust APSAppBar API and add previews
This commit is contained in:
parent
6239809964
commit
c33d1100b7
1 changed files with 22 additions and 2 deletions
|
@ -1,8 +1,11 @@
|
||||||
package app.passwordstore.ui
|
package app.passwordstore.ui
|
||||||
|
|
||||||
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.TopAppBar
|
import androidx.compose.material3.TopAppBar
|
||||||
import androidx.compose.material3.TopAppBarDefaults
|
import androidx.compose.material3.TopAppBarDefaults
|
||||||
|
@ -11,7 +14,11 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.shadow
|
import androidx.compose.ui.draw.shadow
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.painter.Painter
|
import androidx.compose.ui.graphics.painter.Painter
|
||||||
|
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import app.passwordstore.ui.compose.preview.DevicePreviews
|
||||||
|
import app.passwordstore.ui.compose.preview.ThemePreviews
|
||||||
|
import app.passwordstore.ui.compose.theme.APSTheme
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
|
@ -19,14 +26,14 @@ public fun APSAppBar(
|
||||||
title: String,
|
title: String,
|
||||||
backgroundColor: Color,
|
backgroundColor: Color,
|
||||||
navigationIcon: Painter?,
|
navigationIcon: Painter?,
|
||||||
onNavigationIconClick: (() -> Unit)?,
|
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
|
onNavigationIconClick: (() -> Unit) = {},
|
||||||
) {
|
) {
|
||||||
TopAppBar(
|
TopAppBar(
|
||||||
title = { Text(text = title) },
|
title = { Text(text = title) },
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
if (navigationIcon != null) {
|
if (navigationIcon != null) {
|
||||||
IconButton(onClick = { onNavigationIconClick?.invoke() }) {
|
IconButton(onClick = { onNavigationIconClick.invoke() }) {
|
||||||
Icon(
|
Icon(
|
||||||
painter = navigationIcon,
|
painter = navigationIcon,
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
|
@ -38,3 +45,16 @@ public fun APSAppBar(
|
||||||
modifier = modifier.shadow(8.dp),
|
modifier = modifier.shadow(8.dp),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ThemePreviews
|
||||||
|
@DevicePreviews
|
||||||
|
@Composable
|
||||||
|
private fun APSAppBarPreview() {
|
||||||
|
APSTheme {
|
||||||
|
APSAppBar(
|
||||||
|
title = "Preview",
|
||||||
|
backgroundColor = MaterialTheme.colorScheme.surface,
|
||||||
|
navigationIcon = rememberVectorPainter(Icons.AutoMirrored.Filled.ArrowBack),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue