@xyo-network/react-node 2.47.22 → 2.47.24

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,50 @@
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 filter = {
9
+ query: [wrapperObject.requiredQueries],
10
+ };
11
+ const useHook = (account, spinCheck) => {
12
+ const spinCheckBounceNoCheck = useMemo(() => {
13
+ return { name: name ?? 'WrappedModulesHookFactory-NoCheck' };
14
+ }, []);
15
+ useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck);
16
+ const [providedAccount] = useAccount();
17
+ const [modules, moduleError] = useModules(filter);
18
+ const [wrappers, setWrappers] = useState();
19
+ const [error, setError] = useState();
20
+ const accountToUse = useMemo(() => account ?? providedAccount, [account, providedAccount]);
21
+ useEffect(() => {
22
+ if (!accountToUse) {
23
+ const error = Error('Module hooks require either an Account context or account parameter');
24
+ //console.error(error.message)
25
+ setError(error);
26
+ }
27
+ }, [accountToUse]);
28
+ useEffect(() => {
29
+ if (modules && accountToUse) {
30
+ try {
31
+ const wrappers = compact(modules?.map((module) => wrapperObject.tryWrap(module, accountToUse)));
32
+ setWrappers(wrappers);
33
+ setError(undefined);
34
+ }
35
+ catch (ex) {
36
+ setWrappers(undefined);
37
+ setError(ex);
38
+ }
39
+ }
40
+ else {
41
+ setWrappers(undefined);
42
+ setError(moduleError);
43
+ }
44
+ }, [modules, account, moduleError, accountToUse]);
45
+ return [wrappers, error];
46
+ };
47
+ return useHook;
48
+ };
49
+ export const useWrappedModules = WrappedModulesHookFactory(ModuleWrapper, 'useWrappedModules');
50
+ //# 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,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"}
@@ -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,gBAKc,eAAe,cAAc,OAAO,sDAwChE,CAAA;AAED,eAAO,MAAM,iBAAiB,aA1CD,eAAe,cAAc,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;2GA0C6B,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.24",
22
+ "@xyo-network/react-wallet": "^2.47.24"
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.24",
30
+ "@xyo-network/react-wallet": "^2.47.24",
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.24"
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,59 @@
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 filter = {
15
+ query: [wrapperObject.requiredQueries],
16
+ }
17
+ const useHook = (account?: AccountInstance, spinCheck?: boolean): [TModuleWrapper[] | undefined, Error | undefined] => {
18
+ const spinCheckBounceNoCheck = useMemo(() => {
19
+ return { name: name ?? 'WrappedModulesHookFactory-NoCheck' }
20
+ }, [])
21
+ useRenderSpinCheck(spinCheck ? { name: name ?? 'WrappedModuleHookFactory' } : spinCheckBounceNoCheck)
22
+ const [providedAccount] = useAccount()
23
+ const [modules, moduleError] = useModules<TModuleWrapper['module']>(filter)
24
+
25
+ const [wrappers, setWrappers] = useState<TModuleWrapper[]>()
26
+ const [error, setError] = useState<Error>()
27
+
28
+ const accountToUse = useMemo(() => account ?? providedAccount, [account, providedAccount])
29
+
30
+ useEffect(() => {
31
+ if (!accountToUse) {
32
+ const error = Error('Module hooks require either an Account context or account parameter')
33
+ //console.error(error.message)
34
+ setError(error)
35
+ }
36
+ }, [accountToUse])
37
+
38
+ useEffect(() => {
39
+ if (modules && accountToUse) {
40
+ try {
41
+ const wrappers = compact(modules?.map((module) => wrapperObject.tryWrap(module, accountToUse)))
42
+ setWrappers(wrappers)
43
+ setError(undefined)
44
+ } catch (ex) {
45
+ setWrappers(undefined)
46
+ setError(ex as Error)
47
+ }
48
+ } else {
49
+ setWrappers(undefined)
50
+ setError(moduleError)
51
+ }
52
+ }, [modules, account, moduleError, accountToUse])
53
+
54
+ return [wrappers, error]
55
+ }
56
+ return useHook
57
+ }
58
+
59
+ export const useWrappedModules = WrappedModulesHookFactory(ModuleWrapper, 'useWrappedModules')