@w3ux/react-connect-kit 3.3.0-alpha.2 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Extensions/Accounts.d.ts +2 -2
- package/Extensions/Accounts.js.map +1 -1
- package/Extensions/Connect.d.ts +2 -2
- package/Extensions/Connect.js.map +1 -1
- package/Extensions/Provider.d.ts +2 -2
- package/Extensions/Provider.js.map +1 -1
- package/Extensions/types.d.ts +2 -2
- package/Extensions/types.js.map +1 -1
- package/Hardware/index.js.map +1 -0
- package/Hardware/types.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/Extensions/defaults.d.ts +0 -2
- package/Extensions/defaults.js +0 -8
- package/Extensions/defaults.js.map +0 -1
- package/HardwareAccounts/index.js.map +0 -1
- package/HardwareAccounts/types.js.map +0 -1
- /package/{HardwareAccounts → Hardware}/index.d.ts +0 -0
- /package/{HardwareAccounts → Hardware}/index.js +0 -0
- /package/{HardwareAccounts → Hardware}/types.d.ts +0 -0
- /package/{HardwareAccounts → Hardware}/types.js +0 -0
package/Extensions/Accounts.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { ExtensionAccountsContextInterface,
|
|
1
|
+
import type { ExtensionAccountsContextInterface, ExtensionsProviderProps } from './types';
|
|
2
2
|
export declare const ExtensionAccountsContext: import("react").Context<ExtensionAccountsContextInterface>, useExtensionAccounts: () => ExtensionAccountsContextInterface;
|
|
3
|
-
export declare const ExtensionAccountsProvider: ({ children, ss58, dappName, }:
|
|
3
|
+
export declare const ExtensionAccountsProvider: ({ children, ss58, dappName, }: ExtensionsProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Extensions/Accounts.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,aAAa,GACd,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,EACL,gBAAgB,IAAI,kBAAkB,EACtC,mBAAmB,GACpB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAMzC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GAC3D,iBAAiB,EAAqC,CAAA;AAExD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,QAAQ,EACR,IAAI,EACJ,QAAQ,
|
|
1
|
+
{"version":3,"sources":["../src/Extensions/Accounts.tsx"],"names":[],"mappings":"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","file":"Accounts.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { createSafeContext } from '@w3ux/hooks'\nimport {\n extensionAccounts$,\n getReconnectSync,\n initialisedExtensions$,\n reconnectSync$,\n resetAccounts,\n} from '@w3ux/observables-connect'\nimport { unsubAll } from '@w3ux/observables-connect/accounts'\nimport {\n connectExtension as doConnectExtension,\n reconnectExtensions,\n} from '@w3ux/observables-connect/extensions'\nimport type { Account, Sync } from '@w3ux/types'\nimport { formatAccountSs58 } from '@w3ux/utils'\nimport { useEffect, useState } from 'react'\nimport { combineLatest } from 'rxjs'\nimport { useExtensions } from './Connect'\nimport type {\n ExtensionAccountsContextInterface,\n ExtensionsProviderProps,\n} from './types'\n\nexport const [ExtensionAccountsContext, useExtensionAccounts] =\n createSafeContext<ExtensionAccountsContextInterface>()\n\nexport const ExtensionAccountsProvider = ({\n children,\n ss58,\n dappName,\n}: ExtensionsProviderProps) => {\n const { gettingExtensions } = useExtensions()\n\n // Store connected extension accounts\n const [extensionAccounts, setExtensionAccounts] = useState<Account[]>([])\n // Stores initialised extensions\n const [extensionsInitialised, setExtensionsInitialised] = useState<string[]>(\n []\n )\n // Store whether previously enabled extensions have been re-connected\n const [extensionsSynced, setExtensionsSynced] =\n useState<Sync>(getReconnectSync())\n\n // Handle initial connection to previously enabled extensions\n const handleInitialConnect = async () => {\n if (!gettingExtensions && extensionsSynced === 'unsynced') {\n // Defensive: unsubscribe from all accounts and reset state\n unsubAll()\n resetAccounts()\n await reconnectExtensions(dappName, ss58)\n }\n }\n\n // Connects to a single extension and processes its accounts\n const connectExtension = async (id: string): Promise<boolean> =>\n await doConnectExtension(dappName, ss58, id)\n\n // Get extension accounts, formatted by a provided ss58 prefix\n const getExtensionAccounts = (ss58Prefix: number) =>\n extensionAccounts\n .map((account) => {\n const formattedAddress = formatAccountSs58(account.address, ss58Prefix)\n if (!formattedAddress) {\n return null\n }\n return {\n ...account,\n address: formattedAddress,\n }\n })\n .filter((account) => account !== null)\n\n // Initialise extension accounts sync\n useEffect(() => {\n handleInitialConnect()\n return () => unsubAll()\n }, [gettingExtensions])\n\n // Subscribes to observables and updates state\n useEffect(() => {\n const sub = combineLatest([\n initialisedExtensions$,\n extensionAccounts$,\n reconnectSync$,\n ]).subscribe(([initialised, accounts, sync]) => {\n setExtensionsInitialised(initialised)\n setExtensionAccounts(accounts)\n setExtensionsSynced(sync)\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n\n return (\n <ExtensionAccountsContext.Provider\n value={{\n extensionsInitialised,\n connectExtension,\n extensionsSynced,\n getExtensionAccounts,\n }}\n >\n {children}\n </ExtensionAccountsContext.Provider>\n )\n}\n"]}
|
package/Extensions/Connect.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
export declare const ExtensionsConnectContext: import("react").Context<
|
|
2
|
+
import type { ExtensionsConnectContextInterface } from './types';
|
|
3
|
+
export declare const ExtensionsConnectContext: import("react").Context<ExtensionsConnectContextInterface>, useExtensions: () => ExtensionsConnectContextInterface;
|
|
4
4
|
export declare const ExtensionsConnectProvider: ({ children, }: {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Extensions/Connect.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,SAAS,GACV,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAEpE,OAAO,EAAkB,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAGpC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,aAAa,CAAC,GACpD,iBAAiB,
|
|
1
|
+
{"version":3,"sources":["../src/Extensions/Connect.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,SAAS,GACV,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAEpE,OAAO,EAAkB,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAGpC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,aAAa,CAAC,GACpD,iBAAiB,EAAqC,CAAA;AAExD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,QAAQ,GAGT,EAAE,EAAE;IAEH,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAA;IAGzE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAA;IAG9E,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAE,MAAuB,EAAE,EAAE;QACjE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IACvB,CAAC,CAAA;IAGD,MAAM,qBAAqB,GAAG,CAAC,EAAU,EAAE,EAAE;QAC3C,YAAY,CAAC,EAAE,CAAC,CAAA;IAClB,CAAC,CAAA;IAGD,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAW,EAAE,CACjD,SAAS,CAAC,EAAE,CAAC,KAAK,SAAS,CAAA;IAG7B,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAGnE,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAA;QACf,MAAM,GAAG,GAAG,aAAa,CAAC;YACxB,kBAAkB;YAClB,iBAAiB;SAClB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;YACjC,oBAAoB,CAAC,OAAO,CAAC,CAAA;YAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,WAAW,EAAE,CAAA;QACnB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,KAAC,wBAAwB,CAAC,QAAQ,IAChC,KAAK,EAAE;YACL,gBAAgB;YAChB,iBAAiB;YACjB,kBAAkB;YAClB,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;SACpB,YAEA,QAAQ,GACyB,CACrC,CAAA;AACH,CAAC,CAAA","file":"Connect.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { createSafeContext } from '@w3ux/hooks'\nimport {\n canConnect,\n extensionsStatus$,\n getStatus,\n gettingExtensions$,\n removeStatus,\n setStatus,\n} from '@w3ux/observables-connect'\nimport { getExtensions } from '@w3ux/observables-connect/extensions'\nimport type { ExtensionsStatus, ExtensionStatus } from '@w3ux/types'\nimport { type ReactNode, useEffect, useState } from 'react'\nimport { combineLatest } from 'rxjs'\nimport type { ExtensionsConnectContextInterface } from './types'\n\nexport const [ExtensionsConnectContext, useExtensions] =\n createSafeContext<ExtensionsConnectContextInterface>()\n\nexport const ExtensionsConnectProvider = ({\n children,\n}: {\n children: ReactNode\n}) => {\n // Store whether extensions are being fetched\n const [gettingExtensions, setGettingExtensions] = useState<boolean>(true)\n\n // Store discovered extensions along with their status\n const [extensionsStatus, setExtensionsStatus] = useState<ExtensionsStatus>({})\n\n // Setter for an extension status\n const setExtensionStatus = (id: string, status: ExtensionStatus) => {\n setStatus(id, status)\n }\n\n // Removes an extension status\n const removeExtensionStatus = (id: string) => {\n removeStatus(id)\n }\n\n // Checks if an extension has been installed\n const extensionInstalled = (id: string): boolean =>\n getStatus(id) !== undefined\n\n // Checks whether an extension can be connected to\n const extensionCanConnect = (id: string): boolean => canConnect(id)\n\n // Subscribes to observables and updates state\n useEffect(() => {\n getExtensions()\n const sub = combineLatest([\n gettingExtensions$,\n extensionsStatus$,\n ]).subscribe(([getting, status]) => {\n setGettingExtensions(getting)\n setExtensionsStatus(status)\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n\n return (\n <ExtensionsConnectContext.Provider\n value={{\n extensionsStatus,\n gettingExtensions,\n setExtensionStatus,\n removeExtensionStatus,\n extensionInstalled,\n extensionCanConnect,\n }}\n >\n {children}\n </ExtensionsConnectContext.Provider>\n )\n}\n"]}
|
package/Extensions/Provider.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const ExtensionsProvider: ({ ss58, dappName, children, }:
|
|
1
|
+
import type { ExtensionsProviderProps } from './types';
|
|
2
|
+
export declare const ExtensionsProvider: ({ ss58, dappName, children, }: ExtensionsProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Extensions/Provider.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAGrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,QAAQ,
|
|
1
|
+
{"version":3,"sources":["../src/Extensions/Provider.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAGrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,QAAQ,GACgB,EAAE,EAAE,CAAC,CAC7B,KAAC,yBAAyB,cACxB,KAAC,yBAAyB,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,YACtD,QAAQ,GACiB,GACF,CAC7B,CAAA","file":"Provider.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { ExtensionAccountsProvider } from './Accounts'\nimport { ExtensionsConnectProvider } from './Connect'\nimport type { ExtensionsProviderProps } from './types'\n\nexport const ExtensionsProvider = ({\n ss58,\n dappName,\n children,\n}: ExtensionsProviderProps) => (\n <ExtensionsConnectProvider>\n <ExtensionAccountsProvider ss58={ss58} dappName={dappName}>\n {children}\n </ExtensionAccountsProvider>\n </ExtensionsConnectProvider>\n)\n"]}
|
package/Extensions/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Account, ExtensionStatus, Sync } from '@w3ux/types';
|
|
2
2
|
import type { ReactNode } from 'react';
|
|
3
|
-
export interface
|
|
3
|
+
export interface ExtensionsConnectContextInterface {
|
|
4
4
|
gettingExtensions: boolean;
|
|
5
5
|
extensionsStatus: Record<string, ExtensionStatus>;
|
|
6
6
|
setExtensionStatus: (id: string, status: ExtensionStatus) => void;
|
|
@@ -14,7 +14,7 @@ export interface ExtensionAccountsContextInterface {
|
|
|
14
14
|
extensionsSynced: Sync;
|
|
15
15
|
getExtensionAccounts: (ss58: number) => Account[];
|
|
16
16
|
}
|
|
17
|
-
export interface
|
|
17
|
+
export interface ExtensionsProviderProps {
|
|
18
18
|
children: ReactNode;
|
|
19
19
|
ss58: number;
|
|
20
20
|
dappName: string;
|
package/Extensions/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Extensions/types.ts"],"names":[],"mappings":"","file":"types.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { Account, ExtensionStatus, Sync } from '@w3ux/types'\nimport type { ReactNode } from 'react'\n\nexport interface
|
|
1
|
+
{"version":3,"sources":["../src/Extensions/types.ts"],"names":[],"mappings":"","file":"types.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { Account, ExtensionStatus, Sync } from '@w3ux/types'\nimport type { ReactNode } from 'react'\n\nexport interface ExtensionsConnectContextInterface {\n gettingExtensions: boolean\n extensionsStatus: Record<string, ExtensionStatus>\n setExtensionStatus: (id: string, status: ExtensionStatus) => void\n removeExtensionStatus: (id: string) => void\n extensionInstalled: (id: string) => boolean\n extensionCanConnect: (id: string) => boolean\n}\n\nexport interface ExtensionAccountsContextInterface {\n extensionsInitialised: string[]\n connectExtension: (id: string) => Promise<boolean>\n extensionsSynced: Sync\n getExtensionAccounts: (ss58: number) => Account[]\n}\n\nexport interface ExtensionsProviderProps {\n children: ReactNode\n ss58: number\n dappName: string\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Hardware/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { createSafeContext } from '@w3ux/hooks'\nimport {\n getHardwareAccountsLocal,\n hardwareAccounts$,\n HardwareAccountsKey,\n setHardwareAccounts,\n} from '@w3ux/observables-connect'\nimport type { HardwareAccount, HardwareAccountSource } from '@w3ux/types'\nimport { ellipsisFn } from '@w3ux/utils'\nimport type { ReactNode } from 'react'\nimport { useEffect, useState } from 'react'\nimport type { HardwareAccountsContextInterface } from './types'\n\nexport const [HardwareAccountsContext, useHardwareAccounts] =\n createSafeContext<HardwareAccountsContextInterface>()\n\nexport const HardwareAccountsProvider = ({\n children,\n}: {\n children: ReactNode\n}) => {\n // Store imported hardware accounts\n const [hardwareAccounts, setHardwareAccountsState] = useState<\n HardwareAccount[]\n >(getHardwareAccountsLocal())\n\n // Check if an account exists\n const hardwareAccountExists = (\n source: HardwareAccountSource,\n network: string,\n address: string\n ) =>\n !!hardwareAccounts.find(\n (a) =>\n a.source === source && a.address === address && a.network === network\n )\n\n // Adds an account\n const addHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string,\n index: number,\n callback?: () => void\n ) => {\n if (!hardwareAccountExists(source, network, address)) {\n const newAccount: HardwareAccount = {\n address,\n network,\n name: ellipsisFn(address),\n source,\n index,\n }\n const newHardwareAccounts = [...hardwareAccounts].concat(newAccount)\n localStorage.setItem(\n HardwareAccountsKey,\n JSON.stringify(newHardwareAccounts)\n )\n setHardwareAccounts(newHardwareAccounts)\n // Handle optional callback function\n if (typeof callback === 'function') {\n callback()\n }\n return newAccount\n }\n return null\n }\n\n // Removes an account\n const removeHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string,\n callback?: () => void\n ) => {\n const newHardwareAccounts = [...hardwareAccounts].filter(\n (a) =>\n !(a.source === source && a.address === address && a.network === network)\n )\n\n if (!newHardwareAccounts.length) {\n localStorage.removeItem(HardwareAccountsKey)\n } else {\n localStorage.setItem(\n HardwareAccountsKey,\n JSON.stringify(newHardwareAccounts)\n )\n }\n setHardwareAccounts(newHardwareAccounts)\n // Handle optional callback function\n if (typeof callback === 'function') {\n callback()\n }\n }\n\n // Renames an imported account\n const renameHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string,\n newName: string\n ) => {\n const newHardwareAccounts = [...hardwareAccounts].map((a) =>\n a.source === source && a.network === network && a.address === address\n ? {\n ...a,\n name: newName,\n }\n : a\n )\n localStorage.setItem(\n HardwareAccountsKey,\n JSON.stringify(newHardwareAccounts)\n )\n setHardwareAccounts(newHardwareAccounts)\n }\n\n // Gets an imported account\n const getHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string\n ) =>\n hardwareAccounts.find(\n (a) =>\n a.source === source && a.network === network && a.address === address\n ) || null\n\n // Gets all accounts for a network and source\n const getHardwareAccounts = (\n source: HardwareAccountSource,\n network: string\n ) =>\n hardwareAccounts.filter((a) => a.source === source && a.network === network)\n\n // Subscribes to observables and updates state\n useEffect(() => {\n const sub = hardwareAccounts$.subscribe((accounts) => {\n setHardwareAccountsState(accounts)\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n\n return (\n <HardwareAccountsContext.Provider\n value={{\n hardwareAccountExists,\n getHardwareAccount,\n addHardwareAccount,\n removeHardwareAccount,\n renameHardwareAccount,\n getHardwareAccounts,\n }}\n >\n {children}\n </HardwareAccountsContext.Provider>\n )\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Hardware/types.ts"],"names":[],"mappings":"","file":"types.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { HardwareAccount, HardwareAccountSource } from '@w3ux/types'\n\nexport interface HardwareAccountsContextInterface {\n hardwareAccountExists: (\n source: HardwareAccountSource,\n network: string,\n a: string\n ) => boolean\n addHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string,\n index: number,\n callback?: () => void\n ) => HardwareAccount | null\n removeHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string,\n callback?: () => void\n ) => void\n renameHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string,\n name: string\n ) => void\n getHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string\n ) => HardwareAccount | null\n getHardwareAccounts: (\n source: HardwareAccountSource,\n network: string\n ) => HardwareAccount[]\n}\n"]}
|
package/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './Extensions';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './Hardware';
|
package/index.js
CHANGED
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nexport * from './Extensions'\nexport * from './Hardware'\n"]}
|
package/package.json
CHANGED
package/Extensions/defaults.d.ts
DELETED
package/Extensions/defaults.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Extensions/defaults.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,6BAA6B,GAAmC;IAC3E,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;CACpB,CAAA","file":"defaults.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { ProcessExtensionAccountsResult } from '@w3ux/types'\n\nexport const DefaultProcessExtensionResult: ProcessExtensionAccountsResult = {\n newAccounts: [],\n removedAccounts: [],\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/HardwareAccounts/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport { createSafeContext } from '@w3ux/hooks'\nimport {\n getHardwareAccountsLocal,\n hardwareAccounts$,\n HardwareAccountsKey,\n setHardwareAccounts,\n} from '@w3ux/observables-connect'\nimport type { HardwareAccount, HardwareAccountSource } from '@w3ux/types'\nimport { ellipsisFn } from '@w3ux/utils'\nimport type { ReactNode } from 'react'\nimport { useEffect, useState } from 'react'\nimport type { HardwareAccountsContextInterface } from './types'\n\nexport const [HardwareAccountsContext, useHardwareAccounts] =\n createSafeContext<HardwareAccountsContextInterface>()\n\nexport const HardwareAccountsProvider = ({\n children,\n}: {\n children: ReactNode\n}) => {\n // Store imported hardware accounts\n const [hardwareAccounts, setHardwareAccountsState] = useState<\n HardwareAccount[]\n >(getHardwareAccountsLocal())\n\n // Check if an account exists\n const hardwareAccountExists = (\n source: HardwareAccountSource,\n network: string,\n address: string\n ) =>\n !!hardwareAccounts.find(\n (a) =>\n a.source === source && a.address === address && a.network === network\n )\n\n // Adds an account\n const addHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string,\n index: number,\n callback?: () => void\n ) => {\n if (!hardwareAccountExists(source, network, address)) {\n const newAccount: HardwareAccount = {\n address,\n network,\n name: ellipsisFn(address),\n source,\n index,\n }\n const newHardwareAccounts = [...hardwareAccounts].concat(newAccount)\n localStorage.setItem(\n HardwareAccountsKey,\n JSON.stringify(newHardwareAccounts)\n )\n setHardwareAccounts(newHardwareAccounts)\n // Handle optional callback function\n if (typeof callback === 'function') {\n callback()\n }\n return newAccount\n }\n return null\n }\n\n // Removes an account\n const removeHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string,\n callback?: () => void\n ) => {\n const newHardwareAccounts = [...hardwareAccounts].filter(\n (a) =>\n !(a.source === source && a.address === address && a.network === network)\n )\n\n if (!newHardwareAccounts.length) {\n localStorage.removeItem(HardwareAccountsKey)\n } else {\n localStorage.setItem(\n HardwareAccountsKey,\n JSON.stringify(newHardwareAccounts)\n )\n }\n setHardwareAccounts(newHardwareAccounts)\n // Handle optional callback function\n if (typeof callback === 'function') {\n callback()\n }\n }\n\n // Renames an imported account\n const renameHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string,\n newName: string\n ) => {\n const newHardwareAccounts = [...hardwareAccounts].map((a) =>\n a.source === source && a.network === network && a.address === address\n ? {\n ...a,\n name: newName,\n }\n : a\n )\n localStorage.setItem(\n HardwareAccountsKey,\n JSON.stringify(newHardwareAccounts)\n )\n setHardwareAccounts(newHardwareAccounts)\n }\n\n // Gets an imported account\n const getHardwareAccount = (\n source: HardwareAccountSource,\n network: string,\n address: string\n ) =>\n hardwareAccounts.find(\n (a) =>\n a.source === source && a.network === network && a.address === address\n ) || null\n\n // Gets all accounts for a network and source\n const getHardwareAccounts = (\n source: HardwareAccountSource,\n network: string\n ) =>\n hardwareAccounts.filter((a) => a.source === source && a.network === network)\n\n // Subscribes to observables and updates state\n useEffect(() => {\n const sub = hardwareAccounts$.subscribe((accounts) => {\n setHardwareAccountsState(accounts)\n })\n return () => {\n sub.unsubscribe()\n }\n }, [])\n\n return (\n <HardwareAccountsContext.Provider\n value={{\n hardwareAccountExists,\n getHardwareAccount,\n addHardwareAccount,\n removeHardwareAccount,\n renameHardwareAccount,\n getHardwareAccounts,\n }}\n >\n {children}\n </HardwareAccountsContext.Provider>\n )\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/HardwareAccounts/types.ts"],"names":[],"mappings":"","file":"types.js","sourcesContent":["/* @license Copyright 2024 w3ux authors & contributors\nSPDX-License-Identifier: GPL-3.0-only */\n\nimport type { HardwareAccount, HardwareAccountSource } from '@w3ux/types'\n\nexport interface HardwareAccountsContextInterface {\n hardwareAccountExists: (\n source: HardwareAccountSource,\n network: string,\n a: string\n ) => boolean\n addHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string,\n index: number,\n callback?: () => void\n ) => HardwareAccount | null\n removeHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string,\n callback?: () => void\n ) => void\n renameHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string,\n name: string\n ) => void\n getHardwareAccount: (\n source: HardwareAccountSource,\n network: string,\n address: string\n ) => HardwareAccount | null\n getHardwareAccounts: (\n source: HardwareAccountSource,\n network: string\n ) => HardwareAccount[]\n}\n"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|