UNPKG

@mysten/dapp-kit

Version:

A collection of React hooks and components for interacting with the Sui blockchain and wallets.

101 lines (94 loc) 3.3 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/hooks/wallet/useWalletPropertiesChanged.ts var useWalletPropertiesChanged_exports = {}; __export(useWalletPropertiesChanged_exports, { useWalletPropertiesChanged: () => useWalletPropertiesChanged }); module.exports = __toCommonJS(useWalletPropertiesChanged_exports); var import_react3 = require("react"); // src/hooks/wallet/useWalletStore.ts var import_react2 = require("react"); var import_zustand = require("zustand"); // src/contexts/walletContext.ts var import_react = require("react"); var WalletContext = (0, import_react.createContext)(null); // src/hooks/wallet/useWalletStore.ts function useWalletStore(selector) { const store = (0, import_react2.useContext)(WalletContext); if (!store) { throw new Error( "Could not find WalletContext. Ensure that you have set up the WalletProvider." ); } return (0, import_zustand.useStore)(store, selector); } // src/hooks/wallet/useCurrentWallet.ts function useCurrentWallet() { const currentWallet = useWalletStore((state) => state.currentWallet); const connectionStatus = useWalletStore((state) => state.connectionStatus); const supportedIntents = useWalletStore((state) => state.supportedIntents); switch (connectionStatus) { case "connecting": return { connectionStatus, currentWallet: null, isDisconnected: false, isConnecting: true, isConnected: false, supportedIntents: [] }; case "disconnected": return { connectionStatus, currentWallet: null, isDisconnected: true, isConnecting: false, isConnected: false, supportedIntents: [] }; case "connected": { return { connectionStatus, currentWallet, isDisconnected: false, isConnecting: false, isConnected: true, supportedIntents }; } } } // src/hooks/wallet/useWalletPropertiesChanged.ts function useWalletPropertiesChanged() { const { currentWallet } = useCurrentWallet(); const updateWalletAccounts = useWalletStore((state) => state.updateWalletAccounts); (0, import_react3.useEffect)(() => { const unsubscribeFromEvents = currentWallet?.features["standard:events"].on( "change", ({ accounts }) => { if (accounts) { updateWalletAccounts(accounts); } } ); return unsubscribeFromEvents; }, [currentWallet?.features, updateWalletAccounts]); } //# sourceMappingURL=useWalletPropertiesChanged.js.map