11package to.bitkit.ui.sheets
22
3+ import androidx.compose.foundation.Image
34import androidx.compose.foundation.layout.Column
45import androidx.compose.foundation.layout.fillMaxSize
56import androidx.compose.foundation.layout.fillMaxWidth
67import androidx.compose.foundation.layout.imePadding
78import androidx.compose.foundation.layout.navigationBarsPadding
9+ import androidx.compose.foundation.layout.padding
810import androidx.compose.runtime.Composable
911import androidx.compose.runtime.LaunchedEffect
1012import androidx.compose.runtime.getValue
1113import androidx.compose.runtime.remember
1214import androidx.compose.ui.Modifier
1315import androidx.compose.ui.platform.testTag
16+ import androidx.compose.ui.res.painterResource
17+ import androidx.compose.ui.res.stringResource
18+ import androidx.compose.ui.unit.dp
1419import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
1520import androidx.lifecycle.compose.collectAsStateWithLifecycle
1621import androidx.navigation.compose.NavHost
1722import androidx.navigation.compose.rememberNavController
1823import androidx.navigation.toRoute
1924import kotlinx.serialization.Serializable
25+ import to.bitkit.R
2026import to.bitkit.models.NewTransactionSheetDetails
2127import to.bitkit.models.NewTransactionSheetDirection
2228import to.bitkit.models.NewTransactionSheetType
29+ import to.bitkit.ui.components.BodyM
30+ import to.bitkit.ui.components.Display
31+ import to.bitkit.ui.components.PrimaryButton
32+ import to.bitkit.ui.components.VerticalSpacer
33+ import to.bitkit.ui.scaffold.SheetTopBar
2334import to.bitkit.ui.screens.scanner.QrScanningScreen
2435import to.bitkit.ui.screens.wallets.send.AddTagScreen
2536import to.bitkit.ui.screens.wallets.send.PIN_CHECK_RESULT_KEY
@@ -39,8 +50,10 @@ import to.bitkit.ui.screens.wallets.withdraw.WithdrawErrorScreen
3950import to.bitkit.ui.settings.support.SupportScreen
4051import to.bitkit.ui.shared.modifiers.sheetHeight
4152import to.bitkit.ui.shared.util.gradientBackground
53+ import to.bitkit.ui.theme.Colors
4254import to.bitkit.ui.utils.composableWithDefaultTransitions
4355import to.bitkit.ui.utils.navigationWithDefaultTransitions
56+ import to.bitkit.ui.utils.withAccent
4457import to.bitkit.viewmodels.AppViewModel
4558import to.bitkit.viewmodels.SendEffect
4659import to.bitkit.viewmodels.SendEvent
@@ -88,6 +101,7 @@ fun SendSheet(
88101 is SendEffect .NavigateToWithdrawError -> navController.navigate(SendRoute .WithdrawError )
89102 is SendEffect .NavigateToFee -> navController.navigate(SendRoute .FeeRate )
90103 is SendEffect .NavigateToFeeCustom -> navController.navigate(SendRoute .FeeCustom )
104+ is SendEffect .NavigateToComingSoon -> navController.navigate(SendRoute .ComingSoon )
91105 }
92106 }
93107 }
@@ -266,6 +280,11 @@ fun SendSheet(
266280 }
267281 )
268282 }
283+ composableWithDefaultTransitions<SendRoute .ComingSoon > {
284+ ComingSoonSheetContent (
285+ onBackClick = { navController.popBackStack() }
286+ )
287+ }
269288 composableWithDefaultTransitions<SendRoute .Error > {
270289 val route = it.toRoute<SendRoute .Error >()
271290 SendErrorScreen (
@@ -337,6 +356,51 @@ sealed interface SendRoute {
337356 @Serializable
338357 data object Success : SendRoute
339358
359+ @Serializable
360+ data object ComingSoon : SendRoute
361+
340362 @Serializable
341363 data class Error (val errorMessage : String ) : SendRoute
342364}
365+
366+ @Composable
367+ private fun ComingSoonSheetContent (
368+ onBackClick : () -> Unit ,
369+ ) {
370+ Column (
371+ modifier = Modifier
372+ .fillMaxSize()
373+ .gradientBackground()
374+ .navigationBarsPadding()
375+ ) {
376+ SheetTopBar (
377+ titleText = stringResource(R .string.coming_soon__title),
378+ onBack = onBackClick
379+ )
380+
381+ Column (
382+ modifier = Modifier .padding(horizontal = 32 .dp)
383+ ) {
384+ Image (
385+ painter = painterResource(R .drawable.img_cronometer),
386+ contentDescription = null ,
387+ modifier = Modifier
388+ .fillMaxWidth()
389+ .weight(1f )
390+ )
391+
392+ Display (
393+ text = stringResource(R .string.coming_soon__headline).withAccent(accentColor = Colors .Brand ),
394+ color = Colors .White
395+ )
396+ VerticalSpacer (8 .dp)
397+ BodyM (text = stringResource(R .string.coming_soon__description), color = Colors .White64 )
398+ VerticalSpacer (54 .dp)
399+ PrimaryButton (
400+ text = stringResource(R .string.coming_soon__button),
401+ onClick = onBackClick,
402+ )
403+ VerticalSpacer (16 .dp)
404+ }
405+ }
406+ }
0 commit comments