UNPKG

@0xsequence/connect

Version:
62 lines 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useListAccounts = void 0; const react_query_1 = require("@tanstack/react-query"); const wagmi_1 = require("wagmi"); /** * Hook to list all accounts associated with the current WaaS session. * Uses React Query for proper async state management. * * @returns {UseListAccountsResult} Object containing the accounts data, loading state, error state, and refetch function * * @example * ```tsx * function AccountsList() { * const { data, isLoading, error, refetch } = useListAccounts() * * if (isLoading) return <div>Loading accounts...</div> * if (error) return <div>Error: {error.message}</div> * * return ( * <div> * <button onClick={() => refetch()}>Refresh Accounts</button> * {data?.accounts.map(account => ( * <div key={account.id}>{account.address}</div> * ))} * </div> * ) * } * ``` */ const useListAccounts = () => { const connections = (0, wagmi_1.useConnections)(); const { data, isLoading, error, refetch: reactQueryRefetch } = (0, react_query_1.useQuery)({ queryKey: ['waas', 'listAccounts'], queryFn: async () => { const waasConnection = connections.find(c => c.connector.id.includes('waas')); if (!waasConnection) { throw new Error('No WaaS connector found'); } const sequenceWaas = waasConnection.connector.sequenceWaas; if (!sequenceWaas) { throw new Error('WaaS instance not properly initialized'); } return await sequenceWaas.listAccounts(); }, // Only run the query if we have connections enabled: connections.length > 0, // Cache the results for 1 minute staleTime: 60 * 1000 }); const refetch = async () => { await reactQueryRefetch(); }; return { data, isLoading, error: error, refetch }; }; exports.useListAccounts = useListAccounts; //# sourceMappingURL=useListAccounts.js.map