@bigmi/client
Version:
Reactive primitives for Bitcoin apps.
78 lines (77 loc) • 1.84 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
let _bigmi_core = require("@bigmi/core");
//#region src/actions/getAccount.ts
let previousAccount;
function getAccount(config) {
const uid = config.state.current;
const connection = config.state.connections.get(uid);
const accounts = connection?.accounts;
const account = accounts?.[0];
const chain = config.chains.find((chain) => chain.id === connection?.chainId);
const status = config.state.status;
let result;
switch (status) {
case "connected":
result = {
account,
accounts,
chain,
chainId: connection.chainId,
connector: connection.connector,
isConnected: true,
isConnecting: false,
isDisconnected: false,
isReconnecting: false,
status
};
break;
case "reconnecting":
result = {
account,
accounts,
chain,
chainId: connection?.chainId,
connector: connection?.connector,
isConnected: !!account,
isConnecting: false,
isDisconnected: false,
isReconnecting: true,
status
};
break;
case "connecting":
result = {
account,
accounts,
chain,
chainId: connection?.chainId,
connector: connection?.connector,
isConnected: false,
isConnecting: true,
isDisconnected: false,
isReconnecting: false,
status
};
break;
case "disconnected":
result = {
account: void 0,
accounts: void 0,
chain: void 0,
chainId: void 0,
connector: void 0,
isConnected: false,
isConnecting: false,
isDisconnected: true,
isReconnecting: false,
status
};
break;
}
if (previousAccount && (0, _bigmi_core.deepEqual)(previousAccount, result)) return previousAccount;
previousAccount = result;
return result;
}
//#endregion
exports.getAccount = getAccount;
//# sourceMappingURL=getAccount.js.map