@xyo-network/react-node 2.45.0-rc.26 → 2.45.0-rc.28
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/dist/cjs/hooks/useModule.js +2 -2
- package/dist/cjs/hooks/useModule.js.map +1 -1
- package/dist/cjs/hooks/useWrappedModule.js +8 -2
- package/dist/cjs/hooks/useWrappedModule.js.map +1 -1
- package/dist/docs.json +171 -117
- package/dist/esm/hooks/useModule.js +2 -2
- package/dist/esm/hooks/useModule.js.map +1 -1
- package/dist/esm/hooks/useWrappedModule.js +8 -2
- package/dist/esm/hooks/useWrappedModule.js.map +1 -1
- package/dist/types/hooks/useModule.d.ts +2 -1
- package/dist/types/hooks/useModule.d.ts.map +1 -1
- package/dist/types/hooks/useWrappedModule.d.ts +2 -2
- package/dist/types/hooks/useWrappedModule.d.ts.map +1 -1
- package/package.json +9 -5
- package/src/components/Node.stories.tsx +35 -9
- package/src/hooks/useModule.tsx +3 -1
- package/src/hooks/useWrappedModule.tsx +11 -3
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-shared';
|
|
2
2
|
import { useMemo, useState } from 'react';
|
|
3
3
|
import { useProvidedWrappedNode } from './useProvidedNode';
|
|
4
|
-
export const useModule = (nameOrAddressOrFilter) => {
|
|
4
|
+
export const useModule = (nameOrAddressOrFilter, account) => {
|
|
5
5
|
const nameOrAddress = useMemo(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
|
|
6
6
|
const filter = useMemo(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter]);
|
|
7
|
-
const [node, nodeError] = useProvidedWrappedNode();
|
|
7
|
+
const [node, nodeError] = useProvidedWrappedNode(account);
|
|
8
8
|
const [module, setModule] = useState();
|
|
9
9
|
const [error, setError] = useState();
|
|
10
10
|
const address = module?.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAIrD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,qBAA6C,EAC7C,OAAyB,EACiB,EAAE;IAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAC7I,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAA;IACtI,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;IACzD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAA;IAE/B,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,aAAa,GAAG,IAAI,CAAC,MAAoC,CAAA;oBAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAoC,CAAA;oBAC/D,MAAM,aAAa,GAAG,CAAC,IAA6B,EAAE,EAAE;wBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAA;wBAC/B,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,aAAa,IAAI,WAAW,EAAE,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,OAAO,EAAE,EAAE;4BACtG,SAAS,CAAC,WAAsB,CAAC,CAAA;4BACjC,QAAQ,CAAC,SAAS,CAAC,CAAA;yBACpB;oBACH,CAAC,CAAA;oBACD,MAAM,aAAa,GAAG,CAAC,IAA6B,EAAE,EAAE;wBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAA;wBAC/B,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,EAAE;4BAChD,SAAS,CAAC,SAAS,CAAC,CAAA;4BACpB,QAAQ,CAAC,SAAS,CAAC,CAAA;yBACpB;oBACH,CAAC,CAAA;oBACD,MAAM,MAAM,GAAwB,aAAa;wBAC/C,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAU,aAAa,CAAC;wBAC5C,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;oBAC/C,IAAI,OAAO,EAAE,EAAE;wBACb,IAAI,MAAM,EAAE;4BACV,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;yBAClD;6BAAM;4BACL,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;yBAClD;wBACD,SAAS,CAAC,MAAM,CAAC,CAAA;wBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;oBACD,OAAO,GAAG,EAAE;wBACV,qCAAqC;wBACrC,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;wBACvD,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;oBACzD,CAAC,CAAA;iBACF;qBAAM;oBACL,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAClD,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
/* eslint-disable react-hooks/rules-of-hooks */
|
|
2
|
+
import { useRenderSpinCheck } from '@xylabs/react-render-spin-check';
|
|
1
3
|
import { ModuleWrapper } from '@xyo-network/module';
|
|
2
4
|
import { useAccount } from '@xyo-network/react-wallet';
|
|
3
5
|
import { useEffect, useMemo, useState } from 'react';
|
|
4
6
|
import { useModule } from './useModule';
|
|
5
|
-
export const WrappedModuleHookFactory = (wrapperObject) => {
|
|
6
|
-
return (nameOrAddress, account) => {
|
|
7
|
+
export const WrappedModuleHookFactory = (wrapperObject, name) => {
|
|
8
|
+
return (nameOrAddress, account, spinCheck) => {
|
|
9
|
+
const spinCheckBounceNoCheck = useMemo(() => {
|
|
10
|
+
return { name: name ?? 'WrappedModuleHookFactory-NoCheck' };
|
|
11
|
+
}, []);
|
|
12
|
+
useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck);
|
|
7
13
|
const [providedAccount] = useAccount();
|
|
8
14
|
const [module, moduleError] = useModule(nameOrAddress ?? {
|
|
9
15
|
query: [wrapperObject.requiredQueries],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAOvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,aAA4C,EAC5C,IAAa,EACb,EAAE;IACF,OAAO,CAAC,aAAsB,EAAE,OAAyB,EAAE,SAAmB,EAAmD,EAAE;QACjI,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,EAAE;YAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,kCAAkC,EAAE,CAAA;QAC7D,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,0BAA0B,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAA;QACrG,MAAM,CAAC,eAAe,CAAC,GAAG,UAAU,EAAE,CAAA;QACtC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,CACrC,aAAa,IAAI;YACf,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;SACvC,CACF,CAAA;QAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAkB,CAAA;QACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;QAE3C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;QAE1F,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,qEAAqE,CAAC,CAAA;YAC1F,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5B,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;QAED,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,MAAM,IAAI,YAAY,EAAE;gBAC1B,IAAI;oBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAmB,CAAA;oBAC1E,UAAU,CAAC,OAAO,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;iBAAM;gBACL,UAAU,CAAC,SAAS,CAAC,CAAA;gBACrB,QAAQ,CAAC,WAAW,CAAC,CAAA;aACtB;QACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;QAEhD,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AccountInstance } from '@xyo-network/account-model';
|
|
1
2
|
import { Module, ModuleFilter } from '@xyo-network/module-model';
|
|
2
3
|
export declare const useModule: <TModule extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
3
4
|
name?: string | undefined;
|
|
@@ -19,5 +20,5 @@ export declare const useModule: <TModule extends Module<import("@xyo-network/pay
|
|
|
19
20
|
storeQueries?: boolean | undefined;
|
|
20
21
|
} & {
|
|
21
22
|
schema: string;
|
|
22
|
-
}>>(nameOrAddressOrFilter?: string | ModuleFilter) => [TModule | undefined, Error | undefined];
|
|
23
|
+
}>>(nameOrAddressOrFilter?: string | ModuleFilter, account?: AccountInstance) => [TModule | undefined, Error | undefined];
|
|
23
24
|
//# sourceMappingURL=useModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAMhE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;4BACI,MAAM,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAMhE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;4BACI,MAAM,GAAG,YAAY,YACnC,eAAe,6CAqE1B,CAAA"}
|
|
@@ -24,8 +24,8 @@ export declare const WrappedModuleHookFactory: <TModuleWrapper extends ModuleWra
|
|
|
24
24
|
storeQueries?: boolean | undefined;
|
|
25
25
|
} & {
|
|
26
26
|
schema: string;
|
|
27
|
-
}>>>(wrapperObject: WrapperStatic<TModuleWrapper
|
|
28
|
-
export declare const useWrappedModule: (nameOrAddress?: string, account?: AccountInstance) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
27
|
+
}>>>(wrapperObject: WrapperStatic<TModuleWrapper>, name?: string) => (nameOrAddress?: string, account?: AccountInstance, spinCheck?: boolean) => [TModuleWrapper | undefined, Error | undefined];
|
|
28
|
+
export declare const useWrappedModule: (nameOrAddress?: string, account?: AccountInstance, spinCheck?: boolean) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
29
29
|
name?: string | undefined;
|
|
30
30
|
security?: {
|
|
31
31
|
allowAnonymous?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWrappedModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useWrappedModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMnD,MAAM,WAAW,aAAa,CAAC,cAAc,SAAS,aAAa,GAAG,aAAa;IACjF,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,cAAc,CAAA;CACvF;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;0DAE5B,MAAM,sBAEW,MAAM,YAAY,eAAe,cAAc,OAAO,oDAwC/E,CAAA;AAED,eAAO,MAAM,gBAAgB,mBA1CH,MAAM,YAAY,eAAe,cAAc,OAAO;;;;;;;;;;mCA0CT,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,19 +11,23 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@mui/lab": "^5.0.0-alpha.122",
|
|
14
|
-
"@xylabs/react-flexbox": "^2.16.
|
|
15
|
-
"@xylabs/react-
|
|
14
|
+
"@xylabs/react-flexbox": "^2.16.11",
|
|
15
|
+
"@xylabs/react-render-spin-check": "^2.16.11",
|
|
16
|
+
"@xylabs/react-shared": "^2.16.11",
|
|
16
17
|
"@xyo-network/account-model": "^2.51.6",
|
|
17
18
|
"@xyo-network/module": "^2.51.6",
|
|
18
19
|
"@xyo-network/module-model": "^2.51.6",
|
|
19
20
|
"@xyo-network/node": "^2.51.6",
|
|
20
|
-
"@xyo-network/react-shared": "^2.45.0-rc.
|
|
21
|
-
"@xyo-network/react-wallet": "^2.45.0-rc.
|
|
21
|
+
"@xyo-network/react-shared": "^2.45.0-rc.28",
|
|
22
|
+
"@xyo-network/react-wallet": "^2.45.0-rc.28"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
25
|
"@storybook/react": "^6.5.16",
|
|
25
26
|
"@xylabs/ts-scripts-yarn3": "^2.16.1",
|
|
26
27
|
"@xylabs/tsconfig-react": "^2.16.1",
|
|
28
|
+
"@xyo-network/account": "^2.51.6",
|
|
29
|
+
"@xyo-network/react-storybook": "^2.45.0-rc.28",
|
|
30
|
+
"@xyo-network/react-wallet": "^2.45.0-rc.28",
|
|
27
31
|
"require-from-string": "^2.0.2",
|
|
28
32
|
"typescript": "^4.9.5"
|
|
29
33
|
},
|
|
@@ -79,6 +83,6 @@
|
|
|
79
83
|
},
|
|
80
84
|
"sideEffects": false,
|
|
81
85
|
"types": "dist/types/index.d.ts",
|
|
82
|
-
"version": "2.45.0-rc.
|
|
86
|
+
"version": "2.45.0-rc.28",
|
|
83
87
|
"stableVersion": "2.44.1"
|
|
84
88
|
}
|
|
@@ -1,22 +1,46 @@
|
|
|
1
1
|
import { ComponentStory, DecoratorFn, Meta } from '@storybook/react'
|
|
2
|
-
import { useAsyncEffect } from '@xylabs/react-shared'
|
|
2
|
+
import { useAsyncEffect, WithChildren } from '@xylabs/react-shared'
|
|
3
|
+
import { HDWallet } from '@xyo-network/account'
|
|
3
4
|
import { AbstractModule } from '@xyo-network/module'
|
|
4
5
|
import { MemoryNode, NodeConfigSchema, NodeWrapper } from '@xyo-network/node'
|
|
5
|
-
import {
|
|
6
|
+
import { DefaultSeedPhrase } from '@xyo-network/react-storybook'
|
|
7
|
+
import { WalletProvider } from '@xyo-network/react-wallet'
|
|
8
|
+
import { useEffect, useState } from 'react'
|
|
6
9
|
|
|
7
10
|
import { MemoryNodeProvider } from '../contexts'
|
|
8
|
-
import { useProvidedNode } from '../hooks'
|
|
11
|
+
import { useModule, useProvidedNode } from '../hooks'
|
|
12
|
+
|
|
13
|
+
const randomWallet = HDWallet.fromMnemonic(DefaultSeedPhrase)
|
|
9
14
|
|
|
10
15
|
class TestModule extends AbstractModule {}
|
|
16
|
+
const TestModuleName = 'TestModule'
|
|
17
|
+
const TestModuleAccount = randomWallet.deriveAccount('0')
|
|
18
|
+
|
|
19
|
+
const account = randomWallet.deriveAccount('0')
|
|
11
20
|
|
|
12
21
|
const MemoryNodeDecorator: DecoratorFn = (Story, args) => {
|
|
13
22
|
return (
|
|
14
|
-
<
|
|
15
|
-
<
|
|
16
|
-
|
|
23
|
+
<WalletProvider defaultWallet={randomWallet}>
|
|
24
|
+
<MemoryNodeProvider config={{ schema: NodeConfigSchema }}>
|
|
25
|
+
<Story {...args} />
|
|
26
|
+
</MemoryNodeProvider>
|
|
27
|
+
</WalletProvider>
|
|
17
28
|
)
|
|
18
29
|
}
|
|
19
30
|
|
|
31
|
+
const UseModuleTest: React.FC<WithChildren> = ({ children }) => {
|
|
32
|
+
const [testModule] = useModule(TestModuleName, account)
|
|
33
|
+
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (testModule) {
|
|
36
|
+
// Should be called but isn't
|
|
37
|
+
console.log('*****test module*****', testModule)
|
|
38
|
+
}
|
|
39
|
+
}, [testModule])
|
|
40
|
+
|
|
41
|
+
return <>{children}</>
|
|
42
|
+
}
|
|
43
|
+
|
|
20
44
|
// eslint-disable-next-line import/no-default-export
|
|
21
45
|
export default {
|
|
22
46
|
title: 'modules/node/NodeBox',
|
|
@@ -31,9 +55,9 @@ const Template: ComponentStory<React.FC> = (props) => {
|
|
|
31
55
|
async (mounted) => {
|
|
32
56
|
if (node) {
|
|
33
57
|
try {
|
|
34
|
-
const mod = await TestModule.create({ config: { schema: 'network.xyo.test.module' } })
|
|
58
|
+
const mod = await TestModule.create({ account: TestModuleAccount, config: { name: TestModuleName, schema: 'network.xyo.test.module' } })
|
|
35
59
|
node?.register(mod)
|
|
36
|
-
await node?.attach(mod.address)
|
|
60
|
+
await node?.attach(mod.address, true)
|
|
37
61
|
const wrapper = NodeWrapper.wrap(node)
|
|
38
62
|
const description = await wrapper?.describe()
|
|
39
63
|
if (mounted()) {
|
|
@@ -49,7 +73,9 @@ const Template: ComponentStory<React.FC> = (props) => {
|
|
|
49
73
|
|
|
50
74
|
return (
|
|
51
75
|
<div {...props}>
|
|
52
|
-
<
|
|
76
|
+
<UseModuleTest>
|
|
77
|
+
<pre>{description}</pre>
|
|
78
|
+
</UseModuleTest>
|
|
53
79
|
</div>
|
|
54
80
|
)
|
|
55
81
|
}
|
package/src/hooks/useModule.tsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-shared'
|
|
2
|
+
import { AccountInstance } from '@xyo-network/account-model'
|
|
2
3
|
import { Module, ModuleFilter } from '@xyo-network/module-model'
|
|
3
4
|
import { ModuleAttachedEventArgs, ModuleAttachedEventEmitter, ModuleDetachedEventArgs, ModuleDetachedEventEmitter } from '@xyo-network/node'
|
|
4
5
|
import { useMemo, useState } from 'react'
|
|
@@ -7,10 +8,11 @@ import { useProvidedWrappedNode } from './useProvidedNode'
|
|
|
7
8
|
|
|
8
9
|
export const useModule = <TModule extends Module = Module>(
|
|
9
10
|
nameOrAddressOrFilter?: string | ModuleFilter,
|
|
11
|
+
account?: AccountInstance,
|
|
10
12
|
): [TModule | undefined, Error | undefined] => {
|
|
11
13
|
const nameOrAddress = useMemo(() => (typeof nameOrAddressOrFilter === 'string' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
|
|
12
14
|
const filter = useMemo(() => (typeof nameOrAddressOrFilter === 'object' ? nameOrAddressOrFilter : undefined), [nameOrAddressOrFilter])
|
|
13
|
-
const [node, nodeError] = useProvidedWrappedNode()
|
|
15
|
+
const [node, nodeError] = useProvidedWrappedNode(account)
|
|
14
16
|
const [module, setModule] = useState<TModule>()
|
|
15
17
|
const [error, setError] = useState<Error>()
|
|
16
18
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { useRenderSpinCheck } from '@xylabs/react-render-spin-check'
|
|
2
2
|
import { AccountInstance } from '@xyo-network/account-model'
|
|
3
3
|
import { ModuleWrapper } from '@xyo-network/module'
|
|
4
4
|
import { useAccount } from '@xyo-network/react-wallet'
|
|
@@ -11,8 +11,15 @@ export interface WrapperStatic<TModuleWrapper extends ModuleWrapper = ModuleWrap
|
|
|
11
11
|
wrap: (module?: TModuleWrapper['module'], account?: AccountInstance) => TModuleWrapper
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper = ModuleWrapper>(
|
|
15
|
-
|
|
14
|
+
export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper = ModuleWrapper>(
|
|
15
|
+
wrapperObject: WrapperStatic<TModuleWrapper>,
|
|
16
|
+
name?: string,
|
|
17
|
+
) => {
|
|
18
|
+
const useHook = (nameOrAddress?: string, account?: AccountInstance, spinCheck?: boolean): [TModuleWrapper | undefined, Error | undefined] => {
|
|
19
|
+
const spinCheckBounceNoCheck = useMemo(() => {
|
|
20
|
+
return { name: name ?? 'WrappedModuleHookFactory-NoCheck' }
|
|
21
|
+
}, [])
|
|
22
|
+
useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck)
|
|
16
23
|
const [providedAccount] = useAccount()
|
|
17
24
|
const [module, moduleError] = useModule<TModuleWrapper['module']>(
|
|
18
25
|
nameOrAddress ?? {
|
|
@@ -48,6 +55,7 @@ export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper =
|
|
|
48
55
|
|
|
49
56
|
return [wrapper, error]
|
|
50
57
|
}
|
|
58
|
+
return useHook
|
|
51
59
|
}
|
|
52
60
|
|
|
53
61
|
export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper)
|