11package com.getcode.ui.components
22
3- import androidx.compose.foundation.background
43import androidx.compose.foundation.layout.Box
54import androidx.compose.foundation.layout.ExperimentalLayoutApi
65import androidx.compose.foundation.layout.PaddingValues
76import androidx.compose.foundation.layout.WindowInsets
87import androidx.compose.foundation.layout.height
98import androidx.compose.foundation.layout.padding
109import androidx.compose.foundation.layout.requiredSize
11- import androidx.compose.foundation.layout.size
1210import androidx.compose.foundation.layout.statusBarsIgnoringVisibility
1311import androidx.compose.foundation.layout.windowInsetsPadding
14- import androidx.compose.foundation.shape.CircleShape
15- import androidx.compose.material.Icon
16- import androidx.compose.material.Text
12+ import androidx.compose.material3.Icon
13+ import androidx.compose.material3.Text
1714import androidx.compose.material.icons.Icons
18- import androidx.compose.material.icons.automirrored.filled.Redo
1915import androidx.compose.material.icons.automirrored.outlined.ArrowBack
2016import androidx.compose.material.icons.automirrored.outlined.Logout
21- import androidx.compose.material.icons.filled.RestartAlt
22- import androidx.compose.material.icons.filled.RestorePage
2317import androidx.compose.material.icons.outlined.Close
2418import androidx.compose.material.icons.outlined.MoreVert
25- import androidx.compose.material.icons.outlined.Redo
2619import androidx.compose.material.icons.rounded.RestorePage
2720import androidx.compose.runtime.Composable
2821import androidx.compose.ui.Alignment
2922import androidx.compose.ui.Modifier
30- import androidx.compose.ui.draw.clip
3123import androidx.compose.ui.graphics.Color
3224import androidx.compose.ui.layout.SubcomposeLayout
33- import androidx.compose.ui.platform.testTag
3425import androidx.compose.ui.res.painterResource
3526import androidx.compose.ui.text.TextStyle
3627import androidx.compose.ui.text.style.TextOverflow
@@ -41,75 +32,71 @@ import com.getcode.navigation.flow.LocalFlowDismissStyle
4132import com.getcode.theme.CodeTheme
4233import com.getcode.theme.DesignSystem
4334import com.getcode.ui.core.addIf
44- import com.getcode.ui.core.rememberedClickable
45- import com.getcode.ui.core.unboundedClickable
4635import com.getcode.ui.utils.calculateHorizontalPadding
4736import kotlin.math.max
4837
4938object AppBarDefaults {
5039 val ContentPadding : PaddingValues
5140 @Composable get() = PaddingValues (horizontal = CodeTheme .dimens.grid.x2)
5241
53- private val IconSize = 20 .dp
54- private val ButtonSize = 40 .dp
55- private val ButtonBackground = Color .White .copy(alpha = 0.1f )
42+ internal val IconSize = 20 .dp
5643
5744 @Composable
5845 fun UpNavigation (modifier : Modifier = Modifier , onClick : () -> Unit ) {
59- CircularIconButton (modifier = modifier, onClick = onClick, testTag = " action_back" ) {
46+ CircularIconButton (modifier = modifier, onClick = onClick, testTag = " action_back" ) { size ->
6047 Icon (
6148 imageVector = Icons .AutoMirrored .Outlined .ArrowBack ,
6249 contentDescription = " " ,
6350 tint = Color .White ,
64- modifier = Modifier .requiredSize(IconSize ),
51+ modifier = Modifier .requiredSize(size ),
6552 )
6653 }
6754 }
6855
6956 @Composable
7057 fun Close (modifier : Modifier = Modifier , onClick : () -> Unit ) {
71- CircularIconButton (modifier = modifier, onClick = onClick, testTag = " action_close" ) {
58+ CircularIconButton (modifier = modifier, onClick = onClick, testTag = " action_close" ) { size ->
7259 Icon (
7360 imageVector = Icons .Outlined .Close ,
7461 contentDescription = " " ,
7562 tint = Color .White ,
76- modifier = Modifier .requiredSize(IconSize ),
63+ modifier = Modifier .requiredSize(size ),
7764 )
7865 }
7966 }
8067
8168 @Composable
8269 fun Share (modifier : Modifier = Modifier , onClick : () -> Unit ) {
83- CircularIconButton (modifier = modifier, onClick = onClick, testTag = " action_share" ) {
70+ CircularIconButton (modifier = modifier, onClick = onClick, testTag = " action_share" ) { size ->
8471 Icon (
8572 painter = painterResource(R .drawable.ic_remote_send),
8673 contentDescription = " " ,
8774 tint = Color .White ,
88- modifier = Modifier .requiredSize(IconSize ),
75+ modifier = Modifier .requiredSize(size ),
8976 )
9077 }
9178 }
9279
9380 @Composable
9481 fun Leave (modifier : Modifier = Modifier , onClick : () -> Unit ) {
95- CircularIconButton (modifier = modifier, onClick = onClick) {
82+ CircularIconButton (modifier = modifier, onClick = onClick) { size ->
9683 Icon (
9784 imageVector = Icons .AutoMirrored .Outlined .Logout ,
9885 contentDescription = " " ,
9986 tint = Color .White ,
100- modifier = Modifier .requiredSize(IconSize ),
87+ modifier = Modifier .requiredSize(size ),
10188 )
10289 }
10390 }
10491
10592 @Composable
10693 fun Settings (modifier : Modifier = Modifier , onClick : () -> Unit ) {
107- CircularIconButton (modifier = modifier, onClick = onClick) {
94+ CircularIconButton (modifier = modifier, onClick = onClick) { size ->
10895 Icon (
10996 painter = painterResource(R .drawable.ic_settings_outline),
11097 contentDescription = " " ,
11198 tint = Color .White ,
112- modifier = Modifier .requiredSize(IconSize ),
99+ modifier = Modifier .requiredSize(size ),
113100 )
114101 }
115102 }
@@ -119,12 +106,12 @@ object AppBarDefaults {
119106 modifier : Modifier = Modifier ,
120107 onClick : () -> Unit
121108 ) {
122- CircularIconButton (modifier = modifier, onClick = onClick) {
109+ CircularIconButton (modifier = modifier, onClick = onClick) { size ->
123110 Icon (
124111 imageVector = Icons .Outlined .MoreVert ,
125112 contentDescription = " " ,
126113 tint = Color .White ,
127- modifier = Modifier .requiredSize(IconSize ),
114+ modifier = Modifier .requiredSize(size ),
128115 )
129116 }
130117 }
@@ -134,12 +121,12 @@ object AppBarDefaults {
134121 modifier : Modifier = Modifier ,
135122 onClick : () -> Unit
136123 ) {
137- CircularIconButton (modifier = modifier, onClick = onClick) {
124+ CircularIconButton (modifier = modifier, onClick = onClick) { size ->
138125 Icon (
139126 imageVector = Icons .Rounded .RestorePage ,
140127 contentDescription = " " ,
141128 tint = Color .White ,
142- modifier = Modifier .requiredSize(IconSize ),
129+ modifier = Modifier .requiredSize(size ),
143130 )
144131 }
145132 }
@@ -159,26 +146,6 @@ object AppBarDefaults {
159146 overflow = TextOverflow .Ellipsis
160147 )
161148 }
162-
163- @Composable
164- private fun CircularIconButton (
165- modifier : Modifier = Modifier ,
166- onClick : () -> Unit ,
167- testTag : String? = null,
168- content : @Composable () -> Unit ,
169- ) {
170- Box (
171- modifier = modifier
172- .size(ButtonSize )
173- .background(ButtonBackground , CircleShape )
174- .clip(CircleShape )
175- .rememberedClickable { onClick() }
176- .then(if (testTag != null ) Modifier .testTag(testTag) else Modifier ),
177- contentAlignment = Alignment .Center ,
178- ) {
179- content()
180- }
181- }
182149}
183150
184151@Composable
0 commit comments