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
|
||||
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
|
@ -11,7 +14,11 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.draw.shadow
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.graphics.vector.rememberVectorPainter
|
||||
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
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
|
@ -19,14 +26,14 @@ public fun APSAppBar(
|
|||
title: String,
|
||||
backgroundColor: Color,
|
||||
navigationIcon: Painter?,
|
||||
onNavigationIconClick: (() -> Unit)?,
|
||||
modifier: Modifier = Modifier,
|
||||
onNavigationIconClick: (() -> Unit) = {},
|
||||
) {
|
||||
TopAppBar(
|
||||
title = { Text(text = title) },
|
||||
navigationIcon = {
|
||||
if (navigationIcon != null) {
|
||||
IconButton(onClick = { onNavigationIconClick?.invoke() }) {
|
||||
IconButton(onClick = { onNavigationIconClick.invoke() }) {
|
||||
Icon(
|
||||
painter = navigationIcon,
|
||||
contentDescription = null,
|
||||
|
@ -38,3 +45,16 @@ public fun APSAppBar(
|
|||
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