feat(topbar): refactor DefaultTopBar to use Surface and improve layout structure

This commit is contained in:
2026-05-02 19:47:33 +02:00
parent 803edcb80c
commit 1a2687f1a2
2 changed files with 28 additions and 21 deletions

View File

@@ -7,18 +7,19 @@ import androidx.compose.animation.fadeOut
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Search import androidx.compose.material.icons.outlined.Search
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.IconButtonColors import androidx.compose.material3.IconButtonColors
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@@ -31,18 +32,27 @@ import hu.bbara.purefin.navigation.LocalNavSharedAnimatedVisibilityScope
import hu.bbara.purefin.navigation.LocalSharedTransitionScope import hu.bbara.purefin.navigation.LocalSharedTransitionScope
import hu.bbara.purefin.ui.common.image.PurefinLogo import hu.bbara.purefin.ui.common.image.PurefinLogo
@OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun DefaultTopBar( fun DefaultTopBar(
actions: @Composable RowScope.() -> Unit actions: @Composable RowScope.() -> Unit
) { ) {
val scheme = MaterialTheme.colorScheme val scheme = MaterialTheme.colorScheme
TopAppBar( Surface(
title = { color = scheme.background,
contentColor = scheme.onSurface,
modifier = Modifier.fillMaxWidth()
) {
Row(
modifier = Modifier
.statusBarsPadding()
.height(84.dp)
.padding(horizontal = 16.dp),
verticalAlignment = Alignment.CenterVertically
) {
Row( Row(
modifier = Modifier, modifier = Modifier.weight(1f),
horizontalArrangement = Arrangement.spacedBy(12.dp), horizontalArrangement = Arrangement.Start,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
PurefinLogo( PurefinLogo(
@@ -56,16 +66,12 @@ fun DefaultTopBar(
color = scheme.onSecondary color = scheme.onSecondary
) )
} }
}, Row(
actions = actions, verticalAlignment = Alignment.CenterVertically,
colors = TopAppBarDefaults.largeTopAppBarColors( content = actions
containerColor = scheme.background, )
navigationIconContentColor = scheme.onSurface, }
actionIconContentColor = scheme.onSurface, }
titleContentColor = scheme.onSurface
),
modifier = Modifier.padding(end = 12.dp)
)
} }
@OptIn(ExperimentalSharedTransitionApi::class) @OptIn(ExperimentalSharedTransitionApi::class)

View File

@@ -1,12 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="600dp" android:width="494dp"
android:height="552dp" android:height="552dp"
android:viewportWidth="600" android:viewportWidth="494"
android:viewportHeight="552"> android:viewportHeight="552">
<group <group
android:scaleX="0.1" android:scaleX="0.1"
android:scaleY="-0.1" android:scaleY="-0.1"
android:translateX="-106"
android:translateY="552"> android:translateY="552">
<path <path
@@ -17,4 +18,4 @@
android:fillColor="@android:color/white" android:fillColor="@android:color/white"
android:pathData="M3754,3278c14,-45 28,-231 22,-298 -3,-42 -18,-116 -32,-164 -27,-94 -25,-118 11,-142 66,-43 121,70 119,251 -1,87 -30,208 -69,285 -26,51 -60,96 -51,68z" /> android:pathData="M3754,3278c14,-45 28,-231 22,-298 -3,-42 -18,-116 -32,-164 -27,-94 -25,-118 11,-142 66,-43 121,70 119,251 -1,87 -30,208 -69,285 -26,51 -60,96 -51,68z" />
</group> </group>
</vector> </vector>