import { NativeStackNavigationOptions } from '@react-navigation/native-stack'; import React, { useMemo } from 'react'; import { I18nManager, Platform, TouchableOpacity } from 'react-native'; import { Icon } from 'react-native-elements'; import { isDesktop } from '../blue_modules/environment'; import HeaderRightButton from '../components/HeaderRightButton'; import navigationStyle from '../components/navigationStyle'; import { useTheme } from '../components/themes'; import { useExtendedNavigation } from '../hooks/useExtendedNavigation'; import loc from '../loc'; import LdkInfo from '../screen/lnd/ldkInfo'; import LNDViewAdditionalInvoiceInformation from '../screen/lnd/lndViewAdditionalInvoiceInformation'; import LNDViewAdditionalInvoicePreImage from '../screen/lnd/lndViewAdditionalInvoicePreImage'; import LNDViewInvoice from '../screen/lnd/lndViewInvoice'; import LnurlAuth from '../screen/lnd/lnurlAuth'; import LnurlPay from '../screen/lnd/lnurlPay'; import LnurlPaySuccess from '../screen/lnd/lnurlPaySuccess'; import Broadcast from '../screen/send/Broadcast'; import IsItMyAddress from '../screen/send/isItMyAddress'; import Success from '../screen/send/success'; import CPFP from '../screen/transactions/CPFP'; import TransactionDetails from '../screen/transactions/TransactionDetails'; import RBFBumpFee from '../screen/transactions/RBFBumpFee'; import RBFCancel from '../screen/transactions/RBFCancel'; import TransactionStatus from '../screen/transactions/TransactionStatus'; import WalletAddresses from '../screen/wallets/addresses'; import WalletDetails from '../screen/wallets/details'; import GenerateWord from '../screen/wallets/generateWord'; import LdkViewLogs from '../screen/wallets/ldkViewLogs'; import SelectWallet from '../screen/wallets/selectWallet'; import WalletTransactions from '../screen/wallets/transactions'; import WalletsList from '../screen/wallets/WalletsList'; import { NavigationDefaultOptions, NavigationDefaultOptionsForDesktop, NavigationFormModalOptions, StatusBarLightOptions, DetailViewStack, } from './index'; // Importing the navigator import AddWalletStack from './AddWalletStack'; import AztecoRedeemStackRoot from './AztecoRedeemStack'; import ExportMultisigCoordinationSetupStackRoot from './ExportMultisigCoordinationSetupStack'; import { AboutComponent, CurrencyComponent, DefaultViewComponent, ElectrumSettingsComponent, EncryptStorageComponent, GeneralSettingsComponent, LanguageComponent, LicensingComponent, LightningSettingsComponent, NetworkSettingsComponent, NotificationSettingsComponent, PlausibleDeniabilityComponent, ReleaseNotesComponent, SelfTestComponent, SettingsComponent, SettingsPrivacyComponent, ToolsComponent, } from './LazyLoadSettingsStack'; import LDKOpenChannelRoot from './LDKOpenChannelStack'; import LNDCreateInvoiceRoot from './LNDCreateInvoiceStack'; import PaymentCodeStackRoot from './PaymentCodeStack'; import ReceiveDetailsStackRoot from './ReceiveDetailsStack'; import ReorderWalletsStackRoot from './ReorderWalletsStack'; import ScanLndInvoiceRoot from './ScanLndInvoiceStack'; import ScanQRCodeStackRoot from './ScanQRCodeStack'; import SendDetailsStack from './SendDetailsStack'; import SignVerifyStackRoot from './SignVerifyStack'; import ViewEditMultisigCosignersStackRoot from './ViewEditMultisigCosignersStack'; import WalletExportStack from './WalletExportStack'; import WalletXpubStackRoot from './WalletXpubStack'; import { StackActions } from '@react-navigation/native'; const DetailViewStackScreensStack = () => { const theme = useTheme(); const navigation = useExtendedNavigation(); const popToTop = () => { navigation.dispatch(StackActions.popToTop()); }; const SaveButton = useMemo(() => , []); const DetailButton = useMemo(() => , []); const useWalletListScreenOptions = useMemo(() => { const SettingsButton = ( navigation.navigate('Settings')} > ); return { title: '', headerBackTitle: loc.wallets.list_title, navigationBarColor: theme.colors.navigationBarColor, headerShown: !isDesktop, headerStyle: { backgroundColor: theme.colors.customHeader, }, headerRight: I18nManager.isRTL ? undefined : () => SettingsButton, headerLeft: I18nManager.isRTL ? () => SettingsButton : undefined, }; }, [navigation, theme.colors.customHeader, theme.colors.foregroundColor, theme.colors.navigationBarColor]); const walletListScreenOptions = useWalletListScreenOptions; return ( SaveButton, })(theme)} /> DetailButton, })(theme)} /> DetailButton, })(theme)} /> {/* screens */} ); }; export default DetailViewStackScreensStack;