Skip to content

Commit ccb5665

Browse files
committed
refactor: extract topbar fn
1 parent a6f9d3b commit ccb5665

File tree

1 file changed

+65
-47
lines changed

1 file changed

+65
-47
lines changed

app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt

Lines changed: 65 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import dev.chrisbanes.haze.hazeEffect
6565
import dev.chrisbanes.haze.hazeSource
6666
import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi
6767
import dev.chrisbanes.haze.rememberHazeState
68+
import kotlinx.coroutines.CoroutineScope
6869
import kotlinx.coroutines.launch
6970
import to.bitkit.R
7071
import to.bitkit.env.Env
@@ -278,55 +279,15 @@ private fun Content(
278279
val scope = rememberCoroutineScope()
279280
val balances = LocalBalances.current
280281

281-
val topbarGradient = Brush.verticalGradient(
282-
colorStops = arrayOf(
283-
0.5f to Colors.Black,
284-
1.0f to Color.Transparent,
285-
)
286-
)
287-
288282
Box {
289-
// Top AppBar Box
290283
val heightStatusBar = WindowInsets.statusBars.asPaddingValues().calculateTopPadding()
291-
Box(
292-
modifier = Modifier
293-
.fillMaxWidth()
294-
.hazeEffect(state = hazeState) {
295-
mask = topbarGradient
296-
}
297-
.background(topbarGradient)
298-
.zIndex(1f)
299-
) {
300-
TopAppBar(
301-
title = {
302-
Row(
303-
verticalAlignment = Alignment.CenterVertically,
304-
modifier = Modifier.clickableAlpha(onClick = onClickProfile)
305-
) {
306-
Icon(
307-
imageVector = Icons.Filled.AccountCircle,
308-
contentDescription = stringResource(R.string.slashtags__your_name_capital),
309-
tint = Colors.White64,
310-
modifier = Modifier.size(32.dp)
311-
)
312-
HorizontalSpacer(16.dp)
313-
Title(text = stringResource(R.string.slashtags__your_name_capital))
314-
}
315-
},
316-
actions = {
317-
AppStatus(onClick = { rootNavController.navigate(Routes.AppStatus) })
318-
HorizontalSpacer(4.dp)
319-
IconButton(onClick = { scope.launch { drawerState.open() } }) {
320-
Icon(
321-
painter = painterResource(R.drawable.ic_list),
322-
contentDescription = stringResource(R.string.settings__settings),
323-
)
324-
}
325-
},
326-
colors = TopAppBarDefaults.largeTopAppBarColors(Color.Transparent),
327-
modifier = Modifier.fillMaxWidth()
328-
)
329-
}
284+
TopBar(
285+
hazeState = hazeState,
286+
onClickProfile = onClickProfile,
287+
rootNavController = rootNavController,
288+
scope = scope,
289+
drawerState = drawerState,
290+
)
330291
val pullToRefreshState = rememberPullToRefreshState()
331292
PullToRefreshBox(
332293
state = pullToRefreshState,
@@ -613,6 +574,63 @@ private fun Content(
613574
}
614575
}
615576

577+
@Composable
578+
@OptIn(ExperimentalMaterial3Api::class)
579+
private fun TopBar(
580+
hazeState: HazeState,
581+
onClickProfile: () -> Unit,
582+
rootNavController: NavController,
583+
scope: CoroutineScope,
584+
drawerState: DrawerState,
585+
) {
586+
val topbarGradient = Brush.verticalGradient(
587+
colorStops = arrayOf(
588+
0.5f to Colors.Black,
589+
1.0f to Color.Transparent,
590+
)
591+
)
592+
593+
Box(
594+
modifier = Modifier
595+
.fillMaxWidth()
596+
.hazeEffect(state = hazeState) {
597+
mask = topbarGradient
598+
}
599+
.background(topbarGradient)
600+
.zIndex(1f)
601+
) {
602+
TopAppBar(
603+
title = {
604+
Row(
605+
verticalAlignment = Alignment.CenterVertically,
606+
modifier = Modifier.clickableAlpha(onClick = onClickProfile)
607+
) {
608+
Icon(
609+
imageVector = Icons.Filled.AccountCircle,
610+
contentDescription = stringResource(R.string.slashtags__your_name_capital),
611+
tint = Colors.White64,
612+
modifier = Modifier.size(32.dp)
613+
)
614+
HorizontalSpacer(16.dp)
615+
Title(text = stringResource(R.string.slashtags__your_name_capital))
616+
}
617+
},
618+
actions = {
619+
AppStatus(onClick = { rootNavController.navigate(Routes.AppStatus) })
620+
HorizontalSpacer(4.dp)
621+
IconButton(onClick = { scope.launch { drawerState.open() } }) {
622+
Icon(
623+
painter = painterResource(R.drawable.ic_list),
624+
contentDescription = stringResource(R.string.settings__settings),
625+
)
626+
}
627+
},
628+
colors = TopAppBarDefaults.largeTopAppBarColors(Color.Transparent),
629+
modifier = Modifier.fillMaxWidth()
630+
)
631+
}
632+
}
633+
616634
@Composable
617635
private fun DeleteWidgetAlert(
618636
type: WidgetType,

0 commit comments

Comments
 (0)