import React from 'react'; import { createNativeStackNavigator } from 'react-native-screens/native-stack'; import { createDrawerNavigator } from '@react-navigation/drawer'; import { Platform, useWindowDimensions, Dimensions, I18nManager } from 'react-native'; import { useTheme } from '@react-navigation/native'; import Settings from './screen/settings/settings'; import About from './screen/settings/about'; import ReleaseNotes from './screen/settings/releasenotes'; import Licensing from './screen/settings/licensing'; import Selftest from './screen/selftest'; import Language from './screen/settings/language'; import Currency from './screen/settings/currency'; import EncryptStorage from './screen/settings/encryptStorage'; import PlausibleDeniability from './screen/plausibledeniability'; import LightningSettings from './screen/settings/lightningSettings'; import ElectrumSettings from './screen/settings/electrumSettings'; import TorSettings from './screen/settings/torSettings'; import Tools from './screen/settings/tools'; import GeneralSettings from './screen/settings/GeneralSettings'; import NetworkSettings from './screen/settings/NetworkSettings'; import NotificationSettings from './screen/settings/notificationSettings'; import DefaultView from './screen/settings/defaultView'; import WalletsList from './screen/wallets/list'; import WalletTransactions from './screen/wallets/transactions'; import AddWallet from './screen/wallets/add'; import WalletsAddMultisig from './screen/wallets/addMultisig'; import WalletsAddMultisigStep2 from './screen/wallets/addMultisigStep2'; import WalletsAddMultisigHelp from './screen/wallets/addMultisigHelp'; import PleaseBackup from './screen/wallets/pleaseBackup'; import PleaseBackupLNDHub from './screen/wallets/pleaseBackupLNDHub'; import PleaseBackupLdk from './screen/wallets/pleaseBackupLdk'; import ImportWallet from './screen/wallets/import'; import ImportWalletDiscovery from './screen/wallets/importDiscovery'; import ImportCustomDerivationPath from './screen/wallets/importCustomDerivationPath'; import ImportSpeed from './screen/wallets/importSpeed'; import WalletDetails from './screen/wallets/details'; import WalletExport from './screen/wallets/export'; import ExportMultisigCoordinationSetup from './screen/wallets/exportMultisigCoordinationSetup'; import ViewEditMultisigCosigners from './screen/wallets/viewEditMultisigCosigners'; import WalletXpub from './screen/wallets/xpub'; import SignVerify from './screen/wallets/signVerify'; import WalletAddresses from './screen/wallets/addresses'; import BuyBitcoin from './screen/wallets/buyBitcoin'; import HodlHodl from './screen/wallets/hodlHodl'; import HodlHodlViewOffer from './screen/wallets/hodlHodlViewOffer'; import HodlHodlLogin from './screen/wallets/hodlHodlLogin'; import HodlHodlWebview from './screen/wallets/hodlHodlWebview'; import HodlHodlMyContracts from './screen/wallets/hodlHodlMyContracts'; import Marketplace from './screen/wallets/marketplace'; import ReorderWallets from './screen/wallets/reorderWallets'; import SelectWallet from './screen/wallets/selectWallet'; import ProvideEntropy from './screen/wallets/provideEntropy'; import AOPP from './screen/wallets/aopp'; import TransactionDetails from './screen/transactions/details'; import TransactionStatus from './screen/transactions/transactionStatus'; import CPFP from './screen/transactions/CPFP'; import RBFBumpFee from './screen/transactions/RBFBumpFee'; import RBFCancel from './screen/transactions/RBFCancel'; import ReceiveDetails from './screen/receive/details'; import AztecoRedeem from './screen/receive/aztecoRedeem'; import SendDetails from './screen/send/details'; import ScanQRCode from './screen/send/ScanQRCode'; import SendCreate from './screen/send/create'; import Confirm from './screen/send/confirm'; import PsbtWithHardwareWallet from './screen/send/psbtWithHardwareWallet'; import PsbtMultisig from './screen/send/psbtMultisig'; import PsbtMultisigQRCode from './screen/send/psbtMultisigQRCode'; import Success from './screen/send/success'; import Broadcast from './screen/send/broadcast'; import IsItMyAddress from './screen/send/isItMyAddress'; import CoinControl from './screen/send/coinControl'; import ScanLndInvoice from './screen/lnd/scanLndInvoice'; import LappBrowser from './screen/lnd/browser'; import LNDCreateInvoice from './screen/lnd/lndCreateInvoice'; import LNDViewInvoice from './screen/lnd/lndViewInvoice'; import LdkOpenChannel from './screen/lnd/ldkOpenChannel'; import LdkInfo from './screen/lnd/ldkInfo'; import LNDViewAdditionalInvoiceInformation from './screen/lnd/lndViewAdditionalInvoiceInformation'; import LnurlPay from './screen/lnd/lnurlPay'; import LnurlPaySuccess from './screen/lnd/lnurlPaySuccess'; import UnlockWith from './UnlockWith'; import DrawerList from './screen/wallets/drawerList'; import { isDesktop, isTablet, isHandset } from './blue_modules/environment'; import SettingsPrivacy from './screen/settings/SettingsPrivacy'; import LNDViewAdditionalInvoicePreImage from './screen/lnd/lndViewAdditionalInvoicePreImage'; import LdkViewLogs from './screen/wallets/ldkViewLogs'; const WalletsStack = createNativeStackNavigator(); const WalletsRoot = () => { const theme = useTheme(); return ( ); }; const AddWalletStack = createNativeStackNavigator(); const AddWalletRoot = () => { const theme = useTheme(); return ( ); }; // CreateTransactionStackNavigator === SendDetailsStack const SendDetailsStack = createNativeStackNavigator(); const SendDetailsRoot = () => { const theme = useTheme(); return ( ); }; const LNDCreateInvoiceStack = createNativeStackNavigator(); const LNDCreateInvoiceRoot = () => { const theme = useTheme(); return ( ); }; // LightningScanInvoiceStackNavigator === ScanLndInvoiceStack const ScanLndInvoiceStack = createNativeStackNavigator(); const ScanLndInvoiceRoot = () => { const theme = useTheme(); return ( ); }; const LDKOpenChannelStack = createNativeStackNavigator(); const LDKOpenChannelRoot = () => { const theme = useTheme(); return ( ); }; const AztecoRedeemStack = createNativeStackNavigator(); const AztecoRedeemRoot = () => { const theme = useTheme(); return ( ); }; const ScanQRCodeStack = createNativeStackNavigator(); const ScanQRCodeRoot = () => ( ); const UnlockWithScreenStack = createNativeStackNavigator(); const UnlockWithScreenRoot = () => ( ); const HodlHodlLoginStack = createNativeStackNavigator(); const HodlHodlLoginRoot = () => { const theme = useTheme(); return ( ); }; const ReorderWalletsStack = createNativeStackNavigator(); const ReorderWalletsStackRoot = () => { const theme = useTheme(); return ( ); }; const Drawer = createDrawerNavigator(); function DrawerRoot() { const dimensions = useWindowDimensions(); const isLargeScreen = Platform.OS === 'android' ? isTablet() : (dimensions.width >= Dimensions.get('screen').width / 2 && isTablet()) || isDesktop; const drawerStyle = { width: isLargeScreen ? 320 : '0%' }; return ( (isLargeScreen ? : null)} drawerPosition={I18nManager.isRTL ? 'right' : 'left'} > ); } const ReceiveDetailsStack = createNativeStackNavigator(); const ReceiveDetailsStackRoot = () => { const theme = useTheme(); return ( ); }; const WalletXpubStack = createNativeStackNavigator(); const WalletXpubStackRoot = () => { const theme = useTheme(); return ( ); }; const SignVerifyStack = createNativeStackNavigator(); const SignVerifyStackRoot = () => { const theme = useTheme(); return ( ); }; const WalletExportStack = createNativeStackNavigator(); const WalletExportStackRoot = () => { const theme = useTheme(); return ( ); }; const LappBrowserStack = createNativeStackNavigator(); const LappBrowserStackRoot = () => { const theme = useTheme(); return ( ); }; const InitStack = createNativeStackNavigator(); const InitRoot = () => ( ); const ViewEditMultisigCosignersStack = createNativeStackNavigator(); const ViewEditMultisigCosignersRoot = () => { const theme = useTheme(); return ( ); }; const ExportMultisigCoordinationSetupStack = createNativeStackNavigator(); const ExportMultisigCoordinationSetupRoot = () => { const theme = useTheme(); return ( ); }; const AOPPStack = createNativeStackNavigator(); const AOPPRoot = () => { const theme = useTheme(); return ( ); }; const RootStack = createNativeStackNavigator(); const NavigationDefaultOptions = { headerShown: false, stackPresentation: isDesktop ? 'containedModal' : 'modal' }; const Navigation = () => { const theme = useTheme(); return ( {/* stacks */} {/* screens */} ); }; export default InitRoot;