import { Button, IconButton, Menu, useTheme } from "react-native-paper"; import { Account, useAuthorization } from "../../utils/useAuthorization"; import { useMobileWallet } from "../../utils/useMobileWallet"; import { useNavigation } from "@react-navigation/native"; import { ellipsify } from "../../utils/ellipsify"; import { useState } from "react"; import * as Clipboard from "expo-clipboard"; import { Linking } from "react-native"; import { useCluster } from "../cluster/cluster-data-access"; export function TopBarWalletButton({ selectedAccount, openMenu, }: { selectedAccount: Account | null; openMenu: () => void; }) { const { connect } = useMobileWallet(); return ( ); } export function TopBarSettingsButton() { const navigation = useNavigation(); return ( { navigation.navigate("Settings"); }} /> ); } export function TopBarWalletMenu() { const { selectedAccount } = useAuthorization(); const { getExplorerUrl } = useCluster(); const [visible, setVisible] = useState(false); const openMenu = () => setVisible(true); const closeMenu = () => setVisible(false); const { disconnect } = useMobileWallet(); const copyAddressToClipboard = async () => { if (selectedAccount) { await Clipboard.setStringAsync(selectedAccount.publicKey.toBase58()); } closeMenu(); }; const viewExplorer = () => { if (selectedAccount) { const explorerUrl = getExplorerUrl( `account/${selectedAccount.publicKey.toBase58()}` ); Linking.openURL(explorerUrl); } closeMenu(); }; return ( } > { await disconnect(); closeMenu(); }} title="Disconnect" leadingIcon="link-off" /> ); }