import React from 'react'; import { createStackNavigator, TransitionPresets } from '@react-navigation/stack'; import { createDrawerNavigator } from '@react-navigation/drawer'; import { Platform, useWindowDimensions, Dimensions } from 'react-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 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 PleaseBackup from './screen/wallets/pleaseBackup'; import PleaseBackupLNDHub from './screen/wallets/pleaseBackupLNDHub'; import ImportWallet from './screen/wallets/import'; 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 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 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 Success from './screen/send/success'; import Broadcast from './screen/send/broadcast'; 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 LNDViewAdditionalInvoiceInformation from './screen/lnd/lndViewAdditionalInvoiceInformation'; import LnurlPay from './screen/lnd/lnurlPay'; import LnurlPaySuccess from './screen/lnd/lnurlPaySuccess'; import LoadingScreen from './LoadingScreen'; import UnlockWith from './UnlockWith'; import DrawerList from './screen/wallets/drawerList'; import { isTablet } from 'react-native-device-info'; import SettingsPrivacy from './screen/settings/SettingsPrivacy'; import LNDViewAdditionalInvoicePreImage from './screen/lnd/lndViewAdditionalInvoicePreImage'; const defaultScreenOptions = Platform.OS === 'ios' ? ({ route, navigation }) => ({ gestureEnabled: true, cardOverlayEnabled: true, cardStyle: { backgroundColor: '#FFFFFF' }, headerStatusBarHeight: navigation.dangerouslyGetState().routes.indexOf(route) > 0 ? 10 : undefined, ...TransitionPresets.ModalPresentationIOS, gestureResponseDistance: { vertical: Dimensions.get('window').height, horizontal: 50 }, }) : { gestureEnabled: true, cardOverlayEnabled: true, ...TransitionPresets.ScaleFromCenterAndroid, }; const defaultStackScreenOptions = Platform.OS === 'ios' ? { gestureEnabled: true, cardOverlayEnabled: true, cardStyle: { backgroundColor: '#FFFFFF' }, headerStatusBarHeight: 10, } : { gestureEnabled: true, cardOverlayEnabled: true, ...TransitionPresets.ScaleFromCenterAndroid, }; const WalletsStack = createStackNavigator(); const WalletsRoot = () => ( ); const AddWalletStack = createStackNavigator(); const AddWalletRoot = () => ( ); // CreateTransactionStackNavigator === SendDetailsStack const SendDetailsStack = createStackNavigator(); const SendDetailsRoot = () => ( ); const LNDCreateInvoiceStack = createStackNavigator(); const LNDCreateInvoiceRoot = () => ( ); // LightningScanInvoiceStackNavigator === ScanLndInvoiceStack const ScanLndInvoiceStack = createStackNavigator(); const ScanLndInvoiceRoot = () => ( ); const AztecoRedeemStack = createStackNavigator(); const AztecoRedeemRoot = () => ( ); const ScanQRCodeStack = createStackNavigator(); const ScanQRCodeRoot = () => ( ); const LoadingScreenStack = createStackNavigator(); const LoadingScreenRoot = () => ( ); const UnlockWithScreenStack = createStackNavigator(); const UnlockWithScreenRoot = () => ( ); const HodlHodlLoginStack = createStackNavigator(); const HodlHodlLoginRoot = () => ( ); const ReorderWalletsStack = createStackNavigator(); const ReorderWalletsStackRoot = () => ( ); const Drawer = createDrawerNavigator(); function DrawerRoot() { const dimensions = useWindowDimensions(); const isLargeScreen = Platform.OS === 'android' ? isTablet() : dimensions.width >= Dimensions.get('screen').width / 3 && isTablet(); const drawerStyle = { width: '0%' }; return ( (isLargeScreen ? : null)} > ); } const ReceiveDetailsStack = createStackNavigator(); const ReceiveDetailsStackRoot = () => ( ); const WalletXpubStack = createStackNavigator(); const WalletXpubStackRoot = () => ( ); const WalletExportStack = createStackNavigator(); const WalletExportStackRoot = () => ( ); const LappBrowserStack = createStackNavigator(); const LappBrowserStackRoot = () => ( ); const InitStack = createStackNavigator(); const InitRoot = () => ( ); const RootStack = createStackNavigator(); const Navigation = () => ( {/* stacks */} {/* screens */} ); export default InitRoot;