11package com.getcode.navigation.screens
22
3+ import android.webkit.JavascriptInterface
4+ import androidx.compose.foundation.isSystemInDarkTheme
5+ import androidx.compose.foundation.layout.fillMaxSize
6+ import androidx.compose.foundation.layout.imePadding
37import androidx.compose.runtime.Composable
48import androidx.compose.runtime.LaunchedEffect
9+ import androidx.compose.ui.Alignment
10+ import androidx.compose.ui.Modifier
11+ import androidx.compose.ui.graphics.Color
512import androidx.compose.ui.res.stringResource
613import cafe.adriel.voyager.core.screen.ScreenKey
714import cafe.adriel.voyager.core.screen.uniqueScreenKey
815import cafe.adriel.voyager.hilt.getViewModel
916import com.getcode.R
1017import com.getcode.navigation.core.LocalCodeNavigator
18+ import com.getcode.theme.CodeTheme
19+ import com.getcode.ui.components.CodeCircularProgressIndicator
20+ import com.getcode.ui.components.SheetTitleDefaults
1121import com.getcode.ui.utils.getActivityScopedViewModel
1222import com.getcode.ui.utils.getStackScopedViewModel
23+ import com.getcode.ui.utils.toAGColor
1324import com.getcode.view.login.PhoneConfirm
1425import com.getcode.view.login.PhoneVerify
1526import com.getcode.view.login.PhoneVerifyViewModel
@@ -29,10 +40,15 @@ import com.getcode.view.main.getKin.BuyAndSellKin
2940import com.getcode.view.main.getKin.BuyKinScreen
3041import com.getcode.view.main.getKin.GetKinSheet
3142import com.getcode.view.main.getKin.GetKinSheetViewModel
43+ import com.getcode.view.main.getKin.KadoWebScreen
44+ import com.getcode.view.main.tip.ConnectAccountScreen
3245import com.getcode.view.main.tip.EnterTipScreen
3346import com.getcode.view.main.tip.IdentityConnectionReason
34- import com.getcode.view.main.tip.ConnectAccountScreen
3547import com.getcode.view.main.tip.TipConnectViewModel
48+ import com.kevinnzou.web.LoadingState
49+ import com.kevinnzou.web.WebView
50+ import com.kevinnzou.web.rememberWebViewNavigator
51+ import com.kevinnzou.web.rememberWebViewState
3652import kotlinx.parcelize.IgnoredOnParcel
3753import kotlinx.parcelize.Parcelize
3854
@@ -261,7 +277,8 @@ data object DeleteConfirmationScreen : MainGraph, ModalContent {
261277}
262278
263279@Parcelize
264- data class CurrencySelectionModal (val kind : CurrencySelectKind = CurrencySelectKind .Entry ) : MainGraph, ModalContent {
280+ data class CurrencySelectionModal (val kind : CurrencySelectKind = CurrencySelectKind .Entry ) :
281+ MainGraph , ModalContent {
265282 @IgnoredOnParcel
266283 override val key: ScreenKey = uniqueScreenKey
267284
@@ -309,11 +326,7 @@ data class BuyMoreKinModal(
309326 BuyKinScreen (
310327 viewModel = getViewModel(),
311328 onRedirected = {
312- if (showClose) {
313- navigator.hide()
314- } else {
315- navigator.popAll()
316- }
329+ navigator.hide()
317330 }
318331 )
319332 }
@@ -346,6 +359,46 @@ data class BuyMoreKinModal(
346359 }
347360}
348361
362+ @Parcelize
363+ data class KadoWebScreen (val url : String ) : MainGraph, ModalContent {
364+
365+ @IgnoredOnParcel
366+ override val key: ScreenKey = uniqueScreenKey
367+
368+ override val name: String
369+ @Composable get() = stringResource(id = R .string.action_buyMoreKin)
370+
371+ @Composable
372+ override fun Content () {
373+ val state = rememberWebViewState(url = url)
374+ val navigator = LocalCodeNavigator .current
375+ val webNavigator = rememberWebViewNavigator()
376+ ModalContainer (
377+ modalColor = if (isSystemInDarkTheme()) {
378+ Color (0xFF0A121F )
379+ } else {
380+ CodeTheme .colors.background
381+ },
382+ backButtonEnabled = { true },
383+ backButton = { SheetTitleDefaults .CloseButton () },
384+ onBackClicked = { navigator.hide() },
385+ closeButtonEnabled = { true },
386+ closeButton = { SheetTitleDefaults .RefreshButton () },
387+ onCloseClicked = { webNavigator.reload() }
388+ ) {
389+ KadoWebScreen (viewModel = getViewModel(), state = state, webNavigator = webNavigator)
390+ }
391+ }
392+
393+ class BuyKinWebInterface {
394+
395+ @JavascriptInterface
396+ fun handleMessage (message : String ) {
397+ println (" KADO BUY KIN MESSAGE :: $message " )
398+ }
399+ }
400+ }
401+
349402@Parcelize
350403data class EnterTipModal (val isInChat : Boolean = false ) : MainGraph, ModalRoot {
351404
0 commit comments