fix(compose): adjust APSAppBar API and add previews

This commit is contained in:
Harsh Shandilya 2024-05-28 15:03:31 +05:30
parent 6239809964
commit c33d1100b7

View file

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