11package xyz.flipchat.app.features.home.tabs
22
3+ import androidx.compose.foundation.layout.Box
34import androidx.compose.foundation.layout.Column
5+ import androidx.compose.foundation.layout.fillMaxWidth
6+ import androidx.compose.foundation.layout.navigationBarsPadding
7+ import androidx.compose.foundation.layout.padding
8+ import androidx.compose.material.Scaffold
49import androidx.compose.runtime.Composable
10+ import androidx.compose.runtime.rememberCoroutineScope
11+ import androidx.compose.ui.Modifier
12+ import androidx.compose.ui.platform.LocalContext
513import androidx.compose.ui.res.painterResource
614import androidx.compose.ui.res.stringResource
715import cafe.adriel.voyager.core.registry.ScreenRegistry
816import cafe.adriel.voyager.core.screen.ScreenKey
917import cafe.adriel.voyager.core.screen.uniqueScreenKey
18+ import cafe.adriel.voyager.hilt.getViewModel
1019import cafe.adriel.voyager.navigator.Navigator
1120import cafe.adriel.voyager.navigator.tab.TabOptions
21+ import com.getcode.manager.BottomBarManager
1222import com.getcode.navigation.NavScreenProvider
23+ import com.getcode.navigation.core.LocalCodeNavigator
1324import com.getcode.navigation.screens.ChildNavTab
25+ import com.getcode.theme.CodeTheme
1426import com.getcode.ui.components.AppBarWithTitle
27+ import com.getcode.ui.theme.ButtonState
28+ import com.getcode.ui.theme.CodeButton
29+ import com.getcode.ui.theme.CodeScaffold
30+ import com.getcode.ui.utils.addIf
31+ import com.getcode.ui.utils.getActivity
32+ import kotlinx.coroutines.delay
33+ import kotlinx.coroutines.launch
1534import xyz.flipchat.app.R
35+ import xyz.flipchat.app.features.chat.openChatDirectiveBottomModal
36+ import xyz.flipchat.app.features.home.HomeViewModel
37+ import xyz.flipchat.app.features.settings.SettingsViewModel
1638
1739internal object CashTab : ChildNavTab {
1840 override val key: ScreenKey = uniqueScreenKey
@@ -28,11 +50,50 @@ internal object CashTab : ChildNavTab {
2850
2951 @Composable
3052 override fun Content () {
53+ val viewModel = getViewModel<SettingsViewModel >()
54+ val context = LocalContext .current
55+ val composeScope = rememberCoroutineScope()
56+ val navigator = LocalCodeNavigator .current
3157 Column {
3258 AppBarWithTitle (
3359 title = options.title,
3460 )
35- Navigator (ScreenRegistry .get(NavScreenProvider .Balance ))
61+ CodeScaffold (
62+ bottomBar = {
63+ CodeButton (
64+ modifier = Modifier
65+ .fillMaxWidth()
66+ .padding(horizontal = CodeTheme .dimens.inset)
67+ .padding(bottom = CodeTheme .dimens.grid.x3),
68+ buttonState = ButtonState .Subtle ,
69+ text = stringResource(R .string.action_deleteMyAccount)
70+ ) {
71+ BottomBarManager .showMessage(
72+ BottomBarManager .BottomBarMessage (
73+ title = context.getString(R .string.prompt_title_deleteAccount),
74+ subtitle = context
75+ .getString(R .string.prompt_description_deleteAccount),
76+ positiveText = context.getString(R .string.action_permanentlyDeleteAccount),
77+ tertiaryText = context.getString(R .string.action_cancel),
78+ onPositive = {
79+ composeScope.launch {
80+ delay(150 )
81+ context.getActivity()?.let {
82+ viewModel.deleteAccount(it) {
83+ navigator.replaceAll(ScreenRegistry .get(NavScreenProvider .Login .Home ()))
84+ }
85+ }
86+ }
87+ }
88+ )
89+ )
90+ }
91+ },
92+ ) { padding ->
93+ Box (modifier = Modifier .padding(padding)) {
94+ Navigator (ScreenRegistry .get(NavScreenProvider .Balance ))
95+ }
96+ }
3697 }
3798 }
3899}
0 commit comments