@xyo-network/react-node 2.47.22 → 2.47.23

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.
@@ -5,4 +5,5 @@ export * from './useNode';
5
5
  export * from './useNodeAttachedAddresses';
6
6
  export * from './useProvidedNode';
7
7
  export * from './useWrappedModule';
8
+ export * from './useWrappedModules';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
@@ -44,5 +44,5 @@ export const WrappedModuleHookFactory = (wrapperObject, name) => {
44
44
  };
45
45
  return useHook;
46
46
  };
47
- export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper);
47
+ export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper, 'useWrappedModule');
48
48
  //# sourceMappingURL=useWrappedModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWrappedModule.js","sourceRoot":"","sources":["../../../src/hooks/useWrappedModule.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,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,aAAyD,EACzD,IAAa,EACb,EAAE;IACF,MAAM,OAAO,GAAG,CAAC,aAAsB,EAAE,OAAyB,EAAE,SAAmB,EAAmD,EAAE;QAC1I,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,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,MAAM,IAAI,YAAY,EAAE;gBAC1B,IAAI;oBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;oBACxD,UAAU,CAAC,OAAO,CAAC,CAAA;oBACnB,QAAQ,CAAC,SAAS,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;IACD,OAAO,OAAO,CAAA;AAChB,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,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,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,aAAyD,EACzD,IAAa,EACb,EAAE;IACF,MAAM,OAAO,GAAG,CAAC,aAAsB,EAAE,OAAyB,EAAE,SAAmB,EAAmD,EAAE;QAC1I,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,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,MAAM,IAAI,YAAY,EAAE;gBAC1B,IAAI;oBACF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;oBACxD,UAAU,CAAC,OAAO,CAAC,CAAA;oBACnB,QAAQ,CAAC,SAAS,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;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { useRenderSpinCheck } from '@xylabs/react-render-spin-check';
2
+ import { ModuleWrapper } from '@xyo-network/module';
3
+ import { useAccount } from '@xyo-network/react-wallet';
4
+ import compact from 'lodash/compact';
5
+ import { useEffect, useMemo, useState } from 'react';
6
+ import { useModules } from './useModules';
7
+ export const WrappedModulesHookFactory = (wrapperObject, name) => {
8
+ const useHook = (account, spinCheck) => {
9
+ const spinCheckBounceNoCheck = useMemo(() => {
10
+ return { name: name ?? 'WrappedModulesHookFactory-NoCheck' };
11
+ }, []);
12
+ useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck);
13
+ const [providedAccount] = useAccount();
14
+ const [modules, moduleError] = useModules({
15
+ query: [wrapperObject.requiredQueries],
16
+ });
17
+ const [wrappers, setWrappers] = useState();
18
+ const [error, setError] = useState();
19
+ const accountToUse = useMemo(() => account ?? providedAccount, [account, providedAccount]);
20
+ useEffect(() => {
21
+ if (!accountToUse) {
22
+ const error = Error('Module hooks require either an Account context or account parameter');
23
+ //console.error(error.message)
24
+ setError(error);
25
+ }
26
+ }, [accountToUse]);
27
+ useEffect(() => {
28
+ if (modules && accountToUse) {
29
+ try {
30
+ const wrappers = compact(modules?.map((module) => wrapperObject.tryWrap(module, accountToUse)));
31
+ setWrappers(wrappers);
32
+ setError(undefined);
33
+ }
34
+ catch (ex) {
35
+ setWrappers(undefined);
36
+ setError(ex);
37
+ }
38
+ }
39
+ else {
40
+ setWrappers(undefined);
41
+ setError(moduleError);
42
+ }
43
+ }, [modules, account, moduleError, accountToUse]);
44
+ return [wrappers, error];
45
+ };
46
+ return useHook;
47
+ };
48
+ export const useWrappedModules = WrappedModulesHookFactory(ModuleWrapper, 'useWrappedModules');
49
+ //# sourceMappingURL=useWrappedModules.js.map
@@ -0,0 +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,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;YAClE,KAAK,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;SACvC,CAAC,CAAA;QAEF,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"}
@@ -5,4 +5,5 @@ export * from './useNode';
5
5
  export * from './useNodeAttachedAddresses';
6
6
  export * from './useProvidedNode';
7
7
  export * from './useWrappedModule';
8
+ export * from './useWrappedModules';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
@@ -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,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAM/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;6IAE5B,MAAM,sBAEoB,MAAM,YAAY,eAAe,cAAc,OAAO,oDA4CxF,CAAA;AAED,eAAO,MAAM,gBAAgB,mBA9CM,MAAM,YAAY,eAAe,cAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;yGA8ClB,CAAA"}
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,0BAA0B,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAM/E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;6IAE5B,MAAM,sBAEoB,MAAM,YAAY,eAAe,cAAc,OAAO,oDA4CxF,CAAA;AAED,eAAO,MAAM,gBAAgB,mBA9CM,MAAM,YAAY,eAAe,cAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;yGA8CE,CAAA"}
@@ -0,0 +1,57 @@
1
+ import { AccountInstance } from '@xyo-network/account-model';
2
+ import { ConstructableModuleWrapper, ModuleWrapper } from '@xyo-network/module';
3
+ 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
+ name?: string | undefined;
5
+ paging?: Record<string, {
6
+ size?: number | undefined;
7
+ }> | undefined;
8
+ schema: string;
9
+ security?: {
10
+ allowAnonymous?: boolean | undefined;
11
+ allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
12
+ disallowed?: Record<string, string[]> | undefined;
13
+ } | undefined;
14
+ storeQueries?: boolean | undefined;
15
+ } & Omit<Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
16
+ name?: string | undefined;
17
+ paging?: Record<string, {
18
+ size?: number | undefined;
19
+ }> | undefined;
20
+ schema: "network.xyo.module.config";
21
+ security?: {
22
+ allowAnonymous?: boolean | undefined;
23
+ allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
24
+ disallowed?: Record<string, string[]> | undefined;
25
+ } | undefined;
26
+ storeQueries?: boolean | undefined;
27
+ } & Omit<undefined, "schema">, "schema"> & {
28
+ 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 & {
31
+ name?: string | undefined;
32
+ paging?: Record<string, {
33
+ size?: number | undefined;
34
+ }> | undefined;
35
+ schema: string;
36
+ security?: {
37
+ allowAnonymous?: boolean | undefined;
38
+ allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
39
+ disallowed?: Record<string, string[]> | undefined;
40
+ } | undefined;
41
+ storeQueries?: boolean | undefined;
42
+ } & Omit<Omit<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
43
+ name?: string | undefined;
44
+ paging?: Record<string, {
45
+ size?: number | undefined;
46
+ }> | undefined;
47
+ schema: "network.xyo.module.config";
48
+ security?: {
49
+ allowAnonymous?: boolean | undefined;
50
+ allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
51
+ disallowed?: Record<string, string[]> | undefined;
52
+ } | undefined;
53
+ storeQueries?: boolean | undefined;
54
+ } & Omit<undefined, "schema">, "schema"> & {
55
+ schema: string;
56
+ }, "schema">, undefined>, import("@xyo-network/module").ModuleEventData>>[] | undefined, Error | undefined];
57
+ //# sourceMappingURL=useWrappedModules.d.ts.map
@@ -0,0 +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,gBAEc,eAAe,cAAc,OAAO,sDA0ChE,CAAA;AAED,eAAO,MAAM,iBAAiB,aA5CD,eAAe,cAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;2GA4C6B,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.22",
22
- "@xyo-network/react-wallet": "^2.47.22"
21
+ "@xyo-network/react-shared": "^2.47.23",
22
+ "@xyo-network/react-wallet": "^2.47.23"
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.22",
30
- "@xyo-network/react-wallet": "^2.47.22",
29
+ "@xyo-network/react-storybook": "^2.47.23",
30
+ "@xyo-network/react-wallet": "^2.47.23",
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.22"
86
+ "version": "2.47.23"
87
87
  }
@@ -5,3 +5,4 @@ export * from './useNode'
5
5
  export * from './useNodeAttachedAddresses'
6
6
  export * from './useProvidedNode'
7
7
  export * from './useWrappedModule'
8
+ export * from './useWrappedModules'
@@ -56,4 +56,4 @@ export const WrappedModuleHookFactory = <TModuleWrapper extends ModuleWrapper>(
56
56
  return useHook
57
57
  }
58
58
 
59
- export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper)
59
+ export const useWrappedModule = WrappedModuleHookFactory(ModuleWrapper, 'useWrappedModule')
@@ -0,0 +1,58 @@
1
+ import { useRenderSpinCheck } from '@xylabs/react-render-spin-check'
2
+ import { AccountInstance } from '@xyo-network/account-model'
3
+ import { ConstructableModuleWrapper, ModuleWrapper } from '@xyo-network/module'
4
+ import { useAccount } from '@xyo-network/react-wallet'
5
+ import compact from 'lodash/compact'
6
+ import { useEffect, useMemo, useState } from 'react'
7
+
8
+ import { useModules } from './useModules'
9
+
10
+ export const WrappedModulesHookFactory = <TModuleWrapper extends ModuleWrapper>(
11
+ wrapperObject: ConstructableModuleWrapper<TModuleWrapper>,
12
+ name?: string,
13
+ ) => {
14
+ const useHook = (account?: AccountInstance, spinCheck?: boolean): [TModuleWrapper[] | undefined, Error | undefined] => {
15
+ const spinCheckBounceNoCheck = useMemo(() => {
16
+ return { name: name ?? 'WrappedModulesHookFactory-NoCheck' }
17
+ }, [])
18
+ useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck)
19
+ const [providedAccount] = useAccount()
20
+ const [modules, moduleError] = useModules<TModuleWrapper['module']>({
21
+ query: [wrapperObject.requiredQueries],
22
+ })
23
+
24
+ const [wrappers, setWrappers] = useState<TModuleWrapper[]>()
25
+ const [error, setError] = useState<Error>()
26
+
27
+ const accountToUse = useMemo(() => account ?? providedAccount, [account, providedAccount])
28
+
29
+ useEffect(() => {
30
+ if (!accountToUse) {
31
+ const error = Error('Module hooks require either an Account context or account parameter')
32
+ //console.error(error.message)
33
+ setError(error)
34
+ }
35
+ }, [accountToUse])
36
+
37
+ useEffect(() => {
38
+ if (modules && accountToUse) {
39
+ try {
40
+ const wrappers = compact(modules?.map((module) => wrapperObject.tryWrap(module, accountToUse)))
41
+ setWrappers(wrappers)
42
+ setError(undefined)
43
+ } catch (ex) {
44
+ setWrappers(undefined)
45
+ setError(ex as Error)
46
+ }
47
+ } else {
48
+ setWrappers(undefined)
49
+ setError(moduleError)
50
+ }
51
+ }, [modules, account, moduleError, accountToUse])
52
+
53
+ return [wrappers, error]
54
+ }
55
+ return useHook
56
+ }
57
+
58
+ export const useWrappedModules = WrappedModulesHookFactory(ModuleWrapper, 'useWrappedModules')