From c33d1100b775aa7396a076580bda11b4159cb30d Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 28 May 2024 15:03:31 +0530 Subject: fix(compose): adjust APSAppBar API and add previews --- .../main/kotlin/app/passwordstore/ui/APSAppBar.kt | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/ui/compose/src/main/kotlin/app/passwordstore/ui/APSAppBar.kt b/ui/compose/src/main/kotlin/app/passwordstore/ui/APSAppBar.kt index 94b646b7..1a65a2f7 100644 --- a/ui/compose/src/main/kotlin/app/passwordstore/ui/APSAppBar.kt +++ b/ui/compose/src/main/kotlin/app/passwordstore/ui/APSAppBar.kt @@ -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), + ) + } +} -- cgit v1.2.3