@xyo-network/react-node 2.47.24 → 2.47.26

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,40 +1,46 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared';
2
- import { useState } from 'react';
2
+ import { useEffect, useState } from 'react';
3
3
  import { useProvidedWrappedNode } from './useProvidedNode';
4
- export const useModules = (filter) => {
4
+ export const useModules = (filter, logger) => {
5
5
  const [node, nodeError] = useProvidedWrappedNode();
6
6
  const [modules, setModules] = useState();
7
7
  const [error, setError] = useState();
8
+ useEffect(() => {
9
+ logger?.debug('useModules: useAsyncEffect');
10
+ if (nodeError) {
11
+ setError(nodeError);
12
+ setModules(undefined);
13
+ }
14
+ }, [nodeError, logger]);
8
15
  useAsyncEffect(
9
16
  // eslint-disable-next-line react-hooks/exhaustive-deps
10
17
  async (mounted) => {
18
+ logger?.debug('useModules: useAsyncEffect');
11
19
  try {
12
- if (nodeError) {
13
- setError(nodeError);
14
- setModules(undefined);
15
- }
16
- else {
17
- if (node) {
18
- const modules = await node.resolve(filter);
19
- if (mounted()) {
20
- setModules(modules);
21
- setError(undefined);
22
- }
23
- }
24
- else {
20
+ if (node) {
21
+ const modules = await node.resolve(filter);
22
+ if (mounted()) {
23
+ setModules(modules);
25
24
  setError(undefined);
26
- setModules(undefined);
27
25
  }
28
26
  }
27
+ else {
28
+ setError(undefined);
29
+ setModules(undefined);
30
+ }
29
31
  }
30
32
  catch (ex) {
31
33
  if (mounted()) {
32
34
  const error = ex;
35
+ logger?.error(`useModules: useAsyncEffect [${error.message}]`);
33
36
  setError(error);
34
37
  setModules(undefined);
35
38
  }
36
39
  }
37
- }, [filter, node, nodeError]);
40
+ return () => {
41
+ logger?.debug('useModules: unmount');
42
+ };
43
+ }, [filter, node, logger]);
38
44
  return [modules, error];
39
45
  };
40
46
  //# sourceMappingURL=useModules.js.map
@@ -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,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
+ {"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,MAAqB,EAAE,MAAe,EAA8C,EAAE;IAChJ,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,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC3C,IAAI,SAAS,EAAE;YACb,QAAQ,CAAC,SAAS,CAAC,CAAA;YACnB,UAAU,CAAC,SAAS,CAAC,CAAA;SACtB;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IAEvB,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,EAAE,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC3C,IAAI;YACF,IAAI,IAAI,EAAE;gBACR,MAAM,OAAO,GAA0B,MAAM,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;gBAC1E,IAAI,OAAO,EAAE,EAAE;oBACb,UAAU,CAAC,OAAO,CAAC,CAAA;oBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;iBACpB;aACF;iBAAM;gBACL,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,MAAM,EAAE,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC9D,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;SACF;QACD,OAAO,GAAG,EAAE;YACV,MAAM,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACtC,CAAC,CAAA;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CACvB,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
@@ -8,40 +8,47 @@ export const WrappedModulesHookFactory = (wrapperObject, name) => {
8
8
  const filter = {
9
9
  query: [wrapperObject.requiredQueries],
10
10
  };
11
- const useHook = (account, spinCheck) => {
11
+ const useHook = (account, spinCheck, logger) => {
12
12
  const spinCheckBounceNoCheck = useMemo(() => {
13
13
  return { name: name ?? 'WrappedModulesHookFactory-NoCheck' };
14
14
  }, []);
15
15
  useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck);
16
16
  const [providedAccount] = useAccount();
17
- const [modules, moduleError] = useModules(filter);
17
+ const [modules, moduleError] = useModules(filter, logger);
18
18
  const [wrappers, setWrappers] = useState();
19
19
  const [error, setError] = useState();
20
20
  const accountToUse = useMemo(() => account ?? providedAccount, [account, providedAccount]);
21
21
  useEffect(() => {
22
22
  if (!accountToUse) {
23
+ logger?.debug('useEffect: accountToUse');
23
24
  const error = Error('Module hooks require either an Account context or account parameter');
24
25
  //console.error(error.message)
25
26
  setError(error);
26
27
  }
27
- }, [accountToUse]);
28
+ }, [accountToUse, logger]);
28
29
  useEffect(() => {
29
30
  if (modules && accountToUse) {
30
31
  try {
31
32
  const wrappers = compact(modules?.map((module) => wrapperObject.tryWrap(module, accountToUse)));
33
+ logger?.debug('useEffect: modules && accountToUse');
32
34
  setWrappers(wrappers);
33
35
  setError(undefined);
34
36
  }
35
37
  catch (ex) {
38
+ logger?.error(`useEffect: modules && accountToUse Error: ${ex.message}`);
36
39
  setWrappers(undefined);
37
40
  setError(ex);
38
41
  }
39
42
  }
40
43
  else {
44
+ logger?.debug('useEffect: no modules && accountToUse');
41
45
  setWrappers(undefined);
42
46
  setError(moduleError);
43
47
  }
44
- }, [modules, account, moduleError, accountToUse]);
48
+ return () => {
49
+ logger?.debug('useEffect: modules && accountToUse unmount');
50
+ };
51
+ }, [modules, account, moduleError, accountToUse, logger]);
45
52
  return [wrappers, error];
46
53
  };
47
54
  return useHook;
@@ -1 +1 @@
1
- {"version":3,"file":"useWrappedModules.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModules.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAA8B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,aAAyD,EACzD,IAAa,EACb,EAAE;IACF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;KACvC,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,OAAyB,EAAE,SAAmB,EAAqD,EAAE;QACpH,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,EAAE;YAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,mCAAmC,EAAE,CAAA;QAC9D,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,OAAO,EAAE,WAAW,CAAC,GAAG,UAAU,CAA2B,MAAM,CAAC,CAAA;QAE3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAoB,CAAA;QAC5D,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,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,KAAK,GAAG,KAAK,CAAC,qEAAqE,CAAC,CAAA;gBAC1F,8BAA8B;gBAC9B,QAAQ,CAAC,KAAK,CAAC,CAAA;aAChB;QACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;QAElB,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,OAAO,IAAI,YAAY,EAAE;gBAC3B,IAAI;oBACF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;oBAC/F,WAAW,CAAC,QAAQ,CAAC,CAAA;oBACrB,QAAQ,CAAC,SAAS,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,WAAW,CAAC,SAAS,CAAC,CAAA;oBACtB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;iBAAM;gBACL,WAAW,CAAC,SAAS,CAAC,CAAA;gBACtB,QAAQ,CAAC,WAAW,CAAC,CAAA;aACtB;QACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;QAEjD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC1B,CAAC,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"useWrappedModules.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModules.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Logger } from '@xyo-network/core';
1
2
  import { Module, ModuleFilter } from '@xyo-network/module-model';
2
3
  export declare const useModules: <TModule extends Module<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
3
4
  name?: string | undefined;
@@ -51,5 +52,5 @@ export declare const useModules: <TModule extends Module<import("@xyo-network/mo
51
52
  storeQueries?: boolean | undefined;
52
53
  } & Omit<undefined, "schema">, "schema"> & {
53
54
  schema: string;
54
- }, "schema">, undefined>, import("@xyo-network/module-model").ModuleEventData>>(filter?: ModuleFilter) => [TModule[] | undefined, Error | undefined];
55
+ }, "schema">, undefined>, import("@xyo-network/module-model").ModuleEventData>>(filter?: ModuleFilter, logger?: Logger) => [TModule[] | undefined, Error | undefined];
55
56
  //# sourceMappingURL=useModules.d.ts.map
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFAA8C,YAAY,+CAoChF,CAAA"}
1
+ {"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yFAA8C,YAAY,WAAW,MAAM,+CA4CjG,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { AccountInstance } from '@xyo-network/account-model';
2
+ import { Logger } from '@xyo-network/core';
2
3
  import { ConstructableModuleWrapper, ModuleWrapper } from '@xyo-network/module';
3
4
  export declare const WrappedModulesHookFactory: <TModuleWrapper extends ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
5
  name?: string | undefined;
@@ -26,8 +27,8 @@ export declare const WrappedModulesHookFactory: <TModuleWrapper extends ModuleWr
26
27
  storeQueries?: boolean | undefined;
27
28
  } & Omit<undefined, "schema">, "schema"> & {
28
29
  schema: string;
29
- }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>>(wrapperObject: ConstructableModuleWrapper<TModuleWrapper>, name?: string) => (account?: AccountInstance, spinCheck?: boolean) => [TModuleWrapper[] | undefined, Error | undefined];
30
- export declare const useWrappedModules: (account?: AccountInstance, spinCheck?: boolean) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
30
+ }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>>(wrapperObject: ConstructableModuleWrapper<TModuleWrapper>, name?: string) => (account?: AccountInstance, spinCheck?: boolean, logger?: Logger) => [TModuleWrapper[] | undefined, Error | undefined];
31
+ export declare const useWrappedModules: (account?: AccountInstance, spinCheck?: boolean, logger?: Logger) => [ModuleWrapper<import("@xyo-network/module").Module<import("@xyo-network/module").ModuleParams<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
31
32
  name?: string | undefined;
32
33
  paging?: Record<string, {
33
34
  size?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useWrappedModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrappedModules.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAO/E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;6IAE7B,MAAM,gBAKc,eAAe,cAAc,OAAO,sDAwChE,CAAA;AAED,eAAO,MAAM,iBAAiB,aA1CD,eAAe,cAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;2GA0C6B,CAAA"}
1
+ {"version":3,"file":"useWrappedModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWrappedModules.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAO/E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;6IAE7B,MAAM,gBAKc,eAAe,cAAc,OAAO,WAAW,MAAM,sDA+CjF,CAAA;AAED,eAAO,MAAM,iBAAiB,aAjDD,eAAe,cAAc,OAAO,WAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;2GAiDY,CAAA"}
package/package.json CHANGED
@@ -18,16 +18,16 @@
18
18
  "@xyo-network/module": "^2.53.26",
19
19
  "@xyo-network/module-model": "^2.53.26",
20
20
  "@xyo-network/node": "^2.53.26",
21
- "@xyo-network/react-shared": "^2.47.24",
22
- "@xyo-network/react-wallet": "^2.47.24"
21
+ "@xyo-network/react-shared": "^2.47.26",
22
+ "@xyo-network/react-wallet": "^2.47.26"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@storybook/react": "^6.5.16",
26
26
  "@xylabs/ts-scripts-yarn3": "^2.16.1",
27
27
  "@xylabs/tsconfig-react": "^2.16.1",
28
28
  "@xyo-network/account": "^2.53.26",
29
- "@xyo-network/react-storybook": "^2.47.24",
30
- "@xyo-network/react-wallet": "^2.47.24",
29
+ "@xyo-network/react-storybook": "^2.47.26",
30
+ "@xyo-network/react-wallet": "^2.47.26",
31
31
  "require-from-string": "^2.0.2",
32
32
  "typescript": "^4.9.5"
33
33
  },
@@ -83,5 +83,5 @@
83
83
  },
84
84
  "sideEffects": false,
85
85
  "types": "dist/types/index.d.ts",
86
- "version": "2.47.24"
86
+ "version": "2.47.26"
87
87
  }
@@ -1,42 +1,51 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-shared'
2
+ import { Logger } from '@xyo-network/core'
2
3
  import { Module, ModuleFilter } from '@xyo-network/module-model'
3
- import { useState } from 'react'
4
+ import { useEffect, useState } from 'react'
4
5
 
5
6
  import { useProvidedWrappedNode } from './useProvidedNode'
6
7
 
7
- export const useModules = <TModule extends Module = Module>(filter?: ModuleFilter): [TModule[] | undefined, Error | undefined] => {
8
+ export const useModules = <TModule extends Module = Module>(filter?: ModuleFilter, logger?: Logger): [TModule[] | undefined, Error | undefined] => {
8
9
  const [node, nodeError] = useProvidedWrappedNode()
9
10
  const [modules, setModules] = useState<TModule[]>()
10
11
  const [error, setError] = useState<Error>()
11
12
 
13
+ useEffect(() => {
14
+ logger?.debug('useModules: useAsyncEffect')
15
+ if (nodeError) {
16
+ setError(nodeError)
17
+ setModules(undefined)
18
+ }
19
+ }, [nodeError, logger])
20
+
12
21
  useAsyncEffect(
13
22
  // eslint-disable-next-line react-hooks/exhaustive-deps
14
23
  async (mounted) => {
24
+ logger?.debug('useModules: useAsyncEffect')
15
25
  try {
16
- if (nodeError) {
17
- setError(nodeError)
18
- setModules(undefined)
19
- } else {
20
- if (node) {
21
- const modules: TModule[] | undefined = await node.resolve<TModule>(filter)
22
- if (mounted()) {
23
- setModules(modules)
24
- setError(undefined)
25
- }
26
- } else {
26
+ if (node) {
27
+ const modules: TModule[] | undefined = await node.resolve<TModule>(filter)
28
+ if (mounted()) {
29
+ setModules(modules)
27
30
  setError(undefined)
28
- setModules(undefined)
29
31
  }
32
+ } else {
33
+ setError(undefined)
34
+ setModules(undefined)
30
35
  }
31
36
  } catch (ex) {
32
37
  if (mounted()) {
33
38
  const error = ex as Error
39
+ logger?.error(`useModules: useAsyncEffect [${error.message}]`)
34
40
  setError(error)
35
41
  setModules(undefined)
36
42
  }
37
43
  }
44
+ return () => {
45
+ logger?.debug('useModules: unmount')
46
+ }
38
47
  },
39
- [filter, node, nodeError],
48
+ [filter, node, logger],
40
49
  )
41
50
 
42
51
  return [modules, error]
@@ -1,5 +1,6 @@
1
1
  import { useRenderSpinCheck } from '@xylabs/react-render-spin-check'
2
2
  import { AccountInstance } from '@xyo-network/account-model'
3
+ import { Logger } from '@xyo-network/core'
3
4
  import { ConstructableModuleWrapper, ModuleWrapper } from '@xyo-network/module'
4
5
  import { useAccount } from '@xyo-network/react-wallet'
5
6
  import compact from 'lodash/compact'
@@ -14,13 +15,13 @@ export const WrappedModulesHookFactory = <TModuleWrapper extends ModuleWrapper>(
14
15
  const filter = {
15
16
  query: [wrapperObject.requiredQueries],
16
17
  }
17
- const useHook = (account?: AccountInstance, spinCheck?: boolean): [TModuleWrapper[] | undefined, Error | undefined] => {
18
+ const useHook = (account?: AccountInstance, spinCheck?: boolean, logger?: Logger): [TModuleWrapper[] | undefined, Error | undefined] => {
18
19
  const spinCheckBounceNoCheck = useMemo(() => {
19
20
  return { name: name ?? 'WrappedModulesHookFactory-NoCheck' }
20
21
  }, [])
21
22
  useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck)
22
23
  const [providedAccount] = useAccount()
23
- const [modules, moduleError] = useModules<TModuleWrapper['module']>(filter)
24
+ const [modules, moduleError] = useModules<TModuleWrapper['module']>(filter, logger)
24
25
 
25
26
  const [wrappers, setWrappers] = useState<TModuleWrapper[]>()
26
27
  const [error, setError] = useState<Error>()
@@ -29,27 +30,34 @@ export const WrappedModulesHookFactory = <TModuleWrapper extends ModuleWrapper>(
29
30
 
30
31
  useEffect(() => {
31
32
  if (!accountToUse) {
33
+ logger?.debug('useEffect: accountToUse')
32
34
  const error = Error('Module hooks require either an Account context or account parameter')
33
35
  //console.error(error.message)
34
36
  setError(error)
35
37
  }
36
- }, [accountToUse])
38
+ }, [accountToUse, logger])
37
39
 
38
40
  useEffect(() => {
39
41
  if (modules && accountToUse) {
40
42
  try {
41
43
  const wrappers = compact(modules?.map((module) => wrapperObject.tryWrap(module, accountToUse)))
44
+ logger?.debug('useEffect: modules && accountToUse')
42
45
  setWrappers(wrappers)
43
46
  setError(undefined)
44
47
  } catch (ex) {
48
+ logger?.error(`useEffect: modules && accountToUse Error: ${(ex as Error).message}`)
45
49
  setWrappers(undefined)
46
50
  setError(ex as Error)
47
51
  }
48
52
  } else {
53
+ logger?.debug('useEffect: no modules && accountToUse')
49
54
  setWrappers(undefined)
50
55
  setError(moduleError)
51
56
  }
52
- }, [modules, account, moduleError, accountToUse])
57
+ return () => {
58
+ logger?.debug('useEffect: modules && accountToUse unmount')
59
+ }
60
+ }, [modules, account, moduleError, accountToUse, logger])
53
61
 
54
62
  return [wrappers, error]
55
63
  }