UNPKG

@creit.tech/stellar-wallets-kit

Version:
1 lines 5.7 kB
{"version":3,"file":"store.mjs","sources":["../../src/state/store.ts"],"sourcesContent":["import { createStore, select, setProp, withProps } from '@ngneat/elf';\nimport { Observable } from 'rxjs';\nimport { ISupportedWallet, IModalTheme, WalletNetwork, IButtonTheme } from '../types';\n\nexport interface StateProps {\n allowedWallets: ISupportedWallet[];\n\n horizonUrl?: string;\n\n selectedNetwork?: WalletNetwork;\n selectedModuleId?: string;\n\n modalTheme?: IModalTheme;\n buttonTheme?: IButtonTheme;\n\n activeAddress?: string;\n mnemonicPath?: string;\n hardwareWalletPaths: { publicKey: string; index: number }[];\n}\n\nexport const store = createStore(\n { name: 'state' },\n withProps<StateProps>({\n allowedWallets: [],\n hardwareWalletPaths: [],\n })\n);\n\nexport const allowedWallets$: Observable<ISupportedWallet[]> = store.pipe(\n select((state: StateProps) => state.allowedWallets)\n);\n\nexport const selectedNetwork$: Observable<StateProps['selectedNetwork']> = store.pipe(\n select((state: StateProps) => state.selectedNetwork)\n);\n\nexport const modalTheme$: Observable<IModalTheme | undefined> = store.pipe(\n select((state: StateProps) => state.modalTheme)\n);\n\nexport const buttonTheme$: Observable<IButtonTheme | undefined> = store.pipe(\n select((state: StateProps) => state.buttonTheme)\n);\n\nexport const activeAddress$: Observable<string | undefined> = store.pipe(\n select((state: StateProps) => state.activeAddress)\n);\n\nexport const horizonUrl$: Observable<string | undefined> = store.pipe(select((state: StateProps) => state.horizonUrl));\n\nexport const mnemonicPath$: Observable<string | undefined> = store.pipe(\n select((state: StateProps) => state.mnemonicPath)\n);\n\nexport const hardwareWalletPaths$: Observable<{ publicKey: string; index: number }[]> = store.pipe(\n select((state: StateProps) => state.hardwareWalletPaths)\n);\n\nexport function setSelectedModuleId(moduleId: Required<StateProps['selectedModuleId']>): void {\n store.update(setProp('selectedModuleId', moduleId));\n}\n\nexport function setNetwork(network: WalletNetwork): void {\n if (!Object.values(WalletNetwork).includes(network)) {\n throw new Error(`Wallet network \"${network}\" is not supported`);\n }\n\n store.update(setProp('selectedNetwork', network));\n}\n\nexport function setModalTheme(theme: IModalTheme): void {\n store.update(setProp('modalTheme', theme));\n}\n\nexport function seButtonTheme(theme: IButtonTheme): void {\n store.update(setProp('buttonTheme', theme));\n}\n\nexport function setAllowedWallets(data: ISupportedWallet[]) {\n store.update(setProp('allowedWallets', data));\n}\n\nexport function setAddress(address: string): void {\n store.update(setProp('activeAddress', address));\n}\n\nexport function removeAddress(): void {\n store.update(setProp('activeAddress', undefined));\n}\n\nexport function setHorizonUrl(url: string): void {\n store.update(setProp('horizonUrl', url));\n}\n\nexport function setMnemonicPath(path: string): void {\n store.update(setProp('mnemonicPath', path));\n}\n\nexport function removeMnemonicPath(): void {\n store.update(setProp('mnemonicPath', undefined));\n}\n\nexport function setHardwareWalletPaths(accounts: { publicKey: string; index: number }[]): void {\n store.update(setProp('hardwareWalletPaths', accounts));\n}\n\nexport function removeHardwareWalletPaths(): void {\n store.update(setProp('hardwareWalletPaths', []));\n}\n"],"names":[],"mappings":"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"}