@mysten/dapp-kit
Version:
A collection of React hooks and components for interacting with the Sui blockchain and wallets.
41 lines (33 loc) • 850 B
text/typescript
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
import { registerSlushWallet } from '@mysten/slush-wallet';
import { useLayoutEffect } from 'react';
export interface SlushWalletConfig {
name: string;
origin?: string;
}
export function useSlushWallet(config?: SlushWalletConfig) {
useLayoutEffect(() => {
if (!config?.name) {
return;
}
let cleanup: (() => void) | undefined;
let isMounted = true;
try {
const result = registerSlushWallet(config.name, {
origin: config.origin,
});
if (isMounted && result) {
cleanup = result.unregister;
} else if (result) {
result.unregister();
}
} catch (error) {
console.error('Failed to register Slush wallet:', error);
}
return () => {
isMounted = false;
if (cleanup) cleanup();
};
}, [config?.name, config?.origin]);
}