@@ -65,6 +65,7 @@ import dev.chrisbanes.haze.hazeEffect
6565import dev.chrisbanes.haze.hazeSource
6666import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi
6767import dev.chrisbanes.haze.rememberHazeState
68+ import kotlinx.coroutines.CoroutineScope
6869import kotlinx.coroutines.launch
6970import to.bitkit.R
7071import 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
617635private fun DeleteWidgetAlert (
618636 type : WidgetType ,
0 commit comments