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 (