diff --git a/packages/ord-connect/src/SampleApp.tsx b/packages/ord-connect/src/SampleApp.tsx index 928f7980..d6460aa0 100644 --- a/packages/ord-connect/src/SampleApp.tsx +++ b/packages/ord-connect/src/SampleApp.tsx @@ -7,6 +7,7 @@ import { Network, OrdConnectProvider, useOrdConnect, + Wallet, } from "./providers/OrdConnectProvider"; import { OrdConnectKit, useSign } from "./index"; @@ -117,6 +118,8 @@ export function SampleApp() { console.log("View profile clicked")} + preferredWallet={Wallet.XVERSE} + walletsOrder={[Wallet.XVERSE, Wallet.MAGICEDEN, Wallet.OKX]} /> diff --git a/packages/ord-connect/src/components/OrdConnectKit.tsx b/packages/ord-connect/src/components/OrdConnectKit.tsx index 8150b02f..7e102c75 100644 --- a/packages/ord-connect/src/components/OrdConnectKit.tsx +++ b/packages/ord-connect/src/components/OrdConnectKit.tsx @@ -1,7 +1,7 @@ import { ReactNode } from "react"; import useHasMounted from "../hooks/useHasMounted"; -import { useOrdConnect } from "../providers/OrdConnectProvider"; +import { useOrdConnect, Wallet } from "../providers/OrdConnectProvider"; import { PostConnectButton } from "./PostConnectButton"; import { PreConnectButton } from "./PreConnectButton"; @@ -15,6 +15,8 @@ export interface OrdConnectKitProp { onChangeWalletClick?: () => void; onDisconnectWalletClick?: () => void; renderAvatar?: (address: string, size: "large" | "small") => ReactNode; + preferredWallet?: Wallet; + walletsOrder?: Wallet[]; } /** @@ -27,6 +29,8 @@ export interface OrdConnectKitProp { * @param {Function} [props.onViewProfile] - Callback function to handle clicking view wallet profile. * @param {Function} [props.onChangeWalletClick] - Callback function to handle clicking change wallet. * @param {Function} [props.onDisconnectWalletClick] - Callback function to handle clicking disconnect wallet. + * @param {Wallet} [props.preferredWallet] - Displays "Preferred" label beside desired wallet. + * @param {Wallet[]} [props.walletsOrder] - Customize wallets display order in select wallet pop up. * @returns {JSX.Element} OrdConnectKit React component. */ export function OrdConnectKit({ @@ -35,6 +39,8 @@ export function OrdConnectKit({ onChangeWalletClick, onDisconnectWalletClick, renderAvatar, + preferredWallet, + walletsOrder, }: OrdConnectKitProp) { const { address, @@ -80,6 +86,8 @@ export function OrdConnectKit({ isOpen={isModalOpen} closeModal={closeModal} renderAvatar={renderAvatar} + preferredWallet={preferredWallet} + walletsOrder={walletsOrder} /> ) : null} diff --git a/packages/ord-connect/src/components/SelectWalletModal/WalletButton.tsx b/packages/ord-connect/src/components/SelectWalletModal/WalletButton.tsx index d3c6c08c..bb9ce1d6 100644 --- a/packages/ord-connect/src/components/SelectWalletModal/WalletButton.tsx +++ b/packages/ord-connect/src/components/SelectWalletModal/WalletButton.tsx @@ -14,7 +14,7 @@ const WALLET_TO_NAME: Record = { [Wallet.OKX]: "OKX", } as const; -interface WalletButtonProp { +export interface WalletButtonProp { wallet: Wallet; subtitle: string; onConnect: () => Promise; @@ -23,6 +23,7 @@ interface WalletButtonProp { isDisabled?: boolean; isMobileDevice?: boolean; renderAvatar?: (address: string, size: "large" | "small") => ReactNode; + isPreferred?: boolean; } export function WalletButton({ @@ -34,6 +35,7 @@ export function WalletButton({ isDisabled, isMobileDevice, renderAvatar, + isPreferred, }: WalletButtonProp) { const { wallet: _connectedWallet, address: _connectedAddress } = useOrdConnect(); @@ -67,6 +69,9 @@ export function WalletButton({ } }, [onConnect, setErrorMessage]); + const hasConnectedWallet = + connectedWallet === wallet && connectedAddress.ordinals; + return (