@xyo-network/react-node 2.45.0-rc.25 → 2.45.0-rc.27

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.
@@ -1,13 +1,12 @@
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
- const [retryCounter, setRetryCounter] = useState(0);
11
10
  const address = module?.address;
12
11
  useAsyncEffect(
13
12
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -23,15 +22,13 @@ export const useModule = (nameOrAddressOrFilter) => {
23
22
  const detachEmitter = node.module;
24
23
  const attachHandler = (args) => {
25
24
  const eventModule = args.module;
26
- console.log(`attachHandler: [${eventModule.config.name}][${eventModule.address}]`);
27
- if (eventModule.address === nameOrAddress || (eventModule?.config.name === nameOrAddress && mounted())) {
25
+ if ((eventModule.address === nameOrAddress || eventModule?.config.name === nameOrAddress) && mounted()) {
28
26
  setModule(eventModule);
29
27
  setError(undefined);
30
28
  }
31
29
  };
32
30
  const detachHandler = (args) => {
33
31
  const eventModule = args.module;
34
- console.log(`detachHandler: [${eventModule.config.name}][${eventModule.address}]`);
35
32
  if (eventModule.address === address && mounted()) {
36
33
  setModule(undefined);
37
34
  setError(undefined);
@@ -49,11 +46,6 @@ export const useModule = (nameOrAddressOrFilter) => {
49
46
  }
50
47
  setModule(module);
51
48
  setError(undefined);
52
- if (!module) {
53
- setTimeout(() => {
54
- setRetryCounter(retryCounter + 1);
55
- }, 1000);
56
- }
57
49
  }
58
50
  return () => {
59
51
  //remove the event handler on unmount
@@ -62,7 +54,6 @@ export const useModule = (nameOrAddressOrFilter) => {
62
54
  };
63
55
  }
64
56
  else {
65
- console.log('Setting All to undefined');
66
57
  setError(undefined);
67
58
  setModule(undefined);
68
59
  }
@@ -71,12 +62,11 @@ export const useModule = (nameOrAddressOrFilter) => {
71
62
  catch (ex) {
72
63
  if (mounted()) {
73
64
  const error = ex;
74
- console.log(`Setting Error [${error.message}]`);
75
65
  setError(error);
76
66
  setModule(undefined);
77
67
  }
78
68
  }
79
- }, [nameOrAddress, node, nodeError, address, filter, retryCounter]);
69
+ }, [nameOrAddress, node, nodeError, address, filter]);
80
70
  return [module, error];
81
71
  };
82
72
  //# sourceMappingURL=useModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"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"}
@@ -22,7 +22,6 @@ export const useModules = (filter) => {
22
22
  }
23
23
  }
24
24
  else {
25
- console.log('Setting All to undefined');
26
25
  setError(undefined);
27
26
  setModules(undefined);
28
27
  }
@@ -31,7 +30,6 @@ export const useModules = (filter) => {
31
30
  catch (ex) {
32
31
  if (mounted()) {
33
32
  const error = ex;
34
- console.log(`Setting Error [${error.message}]`);
35
33
  setError(error);
36
34
  setModules(undefined);
37
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,MAAqB,EAA8C,EAAE;IAC/H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,OAAO,GAA0B,MAAM,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;oBAC1E,IAAI,OAAO,EAAE,EAAE;wBACb,UAAU,CAAC,OAAO,CAAC,CAAA;wBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;iBACtB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;SACF;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAC1B,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
1
+ {"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,MAAqB,EAA8C,EAAE;IAC/H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,OAAO,GAA0B,MAAM,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;oBAC1E,IAAI,OAAO,EAAE,EAAE;wBACb,UAAU,CAAC,OAAO,CAAC,CAAA;wBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;iBACF;qBAAM;oBACL,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;iBACtB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;SACF;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAC1B,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
@@ -1,9 +1,12 @@
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) => {
7
+ export const WrappedModuleHookFactory = (wrapperObject, name) => {
6
8
  return (nameOrAddress, account) => {
9
+ useRenderSpinCheck({ name: name ?? 'WrappedModuleHookFactory' });
7
10
  const [providedAccount] = useAccount();
8
11
  const [module, moduleError] = useModule(nameOrAddress ?? {
9
12
  query: [wrapperObject.requiredQueries],
@@ -1 +1 @@
1
- {"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"AAEA,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,CAAuD,aAA4C,EAAE,EAAE;IAC7I,OAAO,CAAC,aAAsB,EAAE,OAAyB,EAAmD,EAAE;QAC5G,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
+ {"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,EAAmD,EAAE;QAC5G,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,0BAA0B,EAAE,CAAC,CAAA;QAChE,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,6CA+E9C,CAAA"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAA8C,YAAY,+CAsChF,CAAA"}
1
+ {"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAA8C,YAAY,+CAoChF,CAAA"}
@@ -24,7 +24,7 @@ export declare const WrappedModuleHookFactory: <TModuleWrapper extends ModuleWra
24
24
  storeQueries?: boolean | undefined;
25
25
  } & {
26
26
  schema: string;
27
- }>>>(wrapperObject: WrapperStatic<TModuleWrapper>) => (nameOrAddress?: string, account?: AccountInstance) => [TModuleWrapper | undefined, Error | undefined];
27
+ }>>>(wrapperObject: WrapperStatic<TModuleWrapper>, name?: string) => (nameOrAddress?: string, account?: AccountInstance) => [TModuleWrapper | undefined, Error | undefined];
28
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 & {
29
29
  name?: string | undefined;
30
30
  security?: {
@@ -1 +1 @@
1
- {"version":3,"file":"useWrappedModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.tsx"],"names":[],"mappings":"AACA,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;;;;;;;;;;;;;;;;;;;;uEACX,MAAM,YAAY,eAAe,oDAoC1D,CAAA;AAED,eAAO,MAAM,gBAAgB,mBAtCH,MAAM,YAAY,eAAe;;;;;;;;;;mCAsCY,CAAA"}
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,oDAqC1D,CAAA;AAED,eAAO,MAAM,gBAAgB,mBAvCH,MAAM,YAAY,eAAe;;;;;;;;;;mCAuCY,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.9",
15
- "@xylabs/react-shared": "^2.16.9",
16
- "@xyo-network/account-model": "^2.51.5",
17
- "@xyo-network/module": "^2.51.5",
18
- "@xyo-network/module-model": "^2.51.5",
19
- "@xyo-network/node": "^2.51.5",
20
- "@xyo-network/react-shared": "^2.45.0-rc.25",
21
- "@xyo-network/react-wallet": "^2.45.0-rc.25"
14
+ "@xylabs/react-flexbox": "^2.16.11",
15
+ "@xylabs/react-render-spin-check": "^2.16.11",
16
+ "@xylabs/react-shared": "^2.16.11",
17
+ "@xyo-network/account-model": "^2.51.6",
18
+ "@xyo-network/module": "^2.51.6",
19
+ "@xyo-network/module-model": "^2.51.6",
20
+ "@xyo-network/node": "^2.51.6",
21
+ "@xyo-network/react-shared": "^2.45.0-rc.27",
22
+ "@xyo-network/react-wallet": "^2.45.0-rc.27"
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.27",
30
+ "@xyo-network/react-wallet": "^2.45.0-rc.27",
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.25",
86
+ "version": "2.45.0-rc.27",
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 { useState } from 'react'
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
- <MemoryNodeProvider config={{ schema: NodeConfigSchema }}>
15
- <Story {...args} />
16
- </MemoryNodeProvider>
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
- <pre>{description}</pre>
76
+ <UseModuleTest>
77
+ <pre>{description}</pre>
78
+ </UseModuleTest>
53
79
  </div>
54
80
  )
55
81
  }
@@ -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,13 +8,13 @@ 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
- const [retryCounter, setRetryCounter] = useState(0)
17
18
 
18
19
  const address = module?.address
19
20
 
@@ -30,15 +31,13 @@ export const useModule = <TModule extends Module = Module>(
30
31
  const detachEmitter = node.module as ModuleDetachedEventEmitter
31
32
  const attachHandler = (args: ModuleAttachedEventArgs) => {
32
33
  const eventModule = args.module
33
- console.log(`attachHandler: [${eventModule.config.name}][${eventModule.address}]`)
34
- if (eventModule.address === nameOrAddress || (eventModule?.config.name === nameOrAddress && mounted())) {
34
+ if ((eventModule.address === nameOrAddress || eventModule?.config.name === nameOrAddress) && mounted()) {
35
35
  setModule(eventModule as TModule)
36
36
  setError(undefined)
37
37
  }
38
38
  }
39
39
  const detachHandler = (args: ModuleDetachedEventArgs) => {
40
40
  const eventModule = args.module
41
- console.log(`detachHandler: [${eventModule.config.name}][${eventModule.address}]`)
42
41
  if (eventModule.address === address && mounted()) {
43
42
  setModule(undefined)
44
43
  setError(undefined)
@@ -55,11 +54,6 @@ export const useModule = <TModule extends Module = Module>(
55
54
  }
56
55
  setModule(module)
57
56
  setError(undefined)
58
- if (!module) {
59
- setTimeout(() => {
60
- setRetryCounter(retryCounter + 1)
61
- }, 1000)
62
- }
63
57
  }
64
58
  return () => {
65
59
  //remove the event handler on unmount
@@ -67,7 +61,6 @@ export const useModule = <TModule extends Module = Module>(
67
61
  detachEmitter.on('moduleDetached', detachHandler, true)
68
62
  }
69
63
  } else {
70
- console.log('Setting All to undefined')
71
64
  setError(undefined)
72
65
  setModule(undefined)
73
66
  }
@@ -75,13 +68,12 @@ export const useModule = <TModule extends Module = Module>(
75
68
  } catch (ex) {
76
69
  if (mounted()) {
77
70
  const error = ex as Error
78
- console.log(`Setting Error [${error.message}]`)
79
71
  setError(error)
80
72
  setModule(undefined)
81
73
  }
82
74
  }
83
75
  },
84
- [nameOrAddress, node, nodeError, address, filter, retryCounter],
76
+ [nameOrAddress, node, nodeError, address, filter],
85
77
  )
86
78
 
87
79
  return [module, error]
@@ -24,7 +24,6 @@ export const useModules = <TModule extends Module = Module>(filter?: ModuleFilte
24
24
  setError(undefined)
25
25
  }
26
26
  } else {
27
- console.log('Setting All to undefined')
28
27
  setError(undefined)
29
28
  setModules(undefined)
30
29
  }
@@ -32,7 +31,6 @@ export const useModules = <TModule extends Module = Module>(filter?: ModuleFilte
32
31
  } catch (ex) {
33
32
  if (mounted()) {
34
33
  const error = ex as Error
35
- console.log(`Setting Error [${error.message}]`)
36
34
  setError(error)
37
35
  setModules(undefined)
38
36
  }
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable react-hooks/rules-of-hooks */
2
+ import { useRenderSpinCheck } from '@xylabs/react-render-spin-check'
2
3
  import { AccountInstance } from '@xyo-network/account-model'
3
4
  import { ModuleWrapper } from '@xyo-network/module'
4
5
  import { useAccount } from '@xyo-network/react-wallet'
@@ -11,8 +12,12 @@ export interface WrapperStatic<TModuleWrapper extends ModuleWrapper = ModuleWrap
11
12
  wrap: (module?: TModuleWrapper['module'], account?: AccountInstance) => TModuleWrapper
12
13
  }
13
14
 
14
- export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper = ModuleWrapper>(wrapperObject: WrapperStatic<TModuleWrapper>) => {
15
+ export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper = ModuleWrapper>(
16
+ wrapperObject: WrapperStatic<TModuleWrapper>,
17
+ name?: string,
18
+ ) => {
15
19
  return (nameOrAddress?: string, account?: AccountInstance): [TModuleWrapper | undefined, Error | undefined] => {
20
+ useRenderSpinCheck({ name: name ?? 'WrappedModuleHookFactory' })
16
21
  const [providedAccount] = useAccount()
17
22
  const [module, moduleError] = useModule<TModuleWrapper['module']>(
18
23
  nameOrAddress ?? {