@xyo-network/react-node 2.41.29 → 2.41.31

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.
Files changed (38) hide show
  1. package/dist/cjs/contexts/hooks/index.d.ts +2 -0
  2. package/dist/cjs/contexts/hooks/index.d.ts.map +1 -0
  3. package/dist/cjs/contexts/hooks/index.js +5 -0
  4. package/dist/cjs/contexts/hooks/index.js.map +1 -0
  5. package/dist/cjs/contexts/hooks/useMemoryNodeUpdates.d.ts +7 -0
  6. package/dist/cjs/contexts/hooks/useMemoryNodeUpdates.d.ts.map +1 -0
  7. package/dist/cjs/contexts/hooks/useMemoryNodeUpdates.js +20 -0
  8. package/dist/cjs/contexts/hooks/useMemoryNodeUpdates.js.map +1 -0
  9. package/dist/cjs/contexts/useArchiveArchivists.d.ts +5 -1
  10. package/dist/cjs/contexts/useArchiveArchivists.d.ts.map +1 -1
  11. package/dist/cjs/contexts/useArchiveArchivists.js +11 -4
  12. package/dist/cjs/contexts/useArchiveArchivists.js.map +1 -1
  13. package/dist/cjs/contexts/useNodeQueryDiviner.d.ts +6 -1
  14. package/dist/cjs/contexts/useNodeQueryDiviner.d.ts.map +1 -1
  15. package/dist/cjs/contexts/useNodeQueryDiviner.js +10 -3
  16. package/dist/cjs/contexts/useNodeQueryDiviner.js.map +1 -1
  17. package/dist/docs.json +450 -98
  18. package/dist/esm/contexts/hooks/index.d.ts +2 -0
  19. package/dist/esm/contexts/hooks/index.d.ts.map +1 -0
  20. package/dist/esm/contexts/hooks/index.js +2 -0
  21. package/dist/esm/contexts/hooks/index.js.map +1 -0
  22. package/dist/esm/contexts/hooks/useMemoryNodeUpdates.d.ts +7 -0
  23. package/dist/esm/contexts/hooks/useMemoryNodeUpdates.d.ts.map +1 -0
  24. package/dist/esm/contexts/hooks/useMemoryNodeUpdates.js +16 -0
  25. package/dist/esm/contexts/hooks/useMemoryNodeUpdates.js.map +1 -0
  26. package/dist/esm/contexts/useArchiveArchivists.d.ts +5 -1
  27. package/dist/esm/contexts/useArchiveArchivists.d.ts.map +1 -1
  28. package/dist/esm/contexts/useArchiveArchivists.js +9 -3
  29. package/dist/esm/contexts/useArchiveArchivists.js.map +1 -1
  30. package/dist/esm/contexts/useNodeQueryDiviner.d.ts +6 -1
  31. package/dist/esm/contexts/useNodeQueryDiviner.d.ts.map +1 -1
  32. package/dist/esm/contexts/useNodeQueryDiviner.js +8 -2
  33. package/dist/esm/contexts/useNodeQueryDiviner.js.map +1 -1
  34. package/package.json +2 -2
  35. package/src/contexts/hooks/index.ts +1 -0
  36. package/src/contexts/hooks/useMemoryNodeUpdates.tsx +21 -0
  37. package/src/contexts/useArchiveArchivists.tsx +13 -3
  38. package/src/contexts/useNodeQueryDiviner.tsx +16 -2
@@ -0,0 +1,2 @@
1
+ export * from './useMemoryNodeUpdates';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './useMemoryNodeUpdates';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contexts/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { ModuleResolver } from '@xyo-network/module-model';
2
+ export declare const useMemoryNodeUpdates: () => {
3
+ resolver: ModuleResolver<import("@xyo-network/module-model").Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
+ schema: string;
5
+ }>> | undefined;
6
+ };
7
+ //# sourceMappingURL=useMemoryNodeUpdates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMemoryNodeUpdates.d.ts","sourceRoot":"","sources":["../../../../src/contexts/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM1D,eAAO,MAAM,oBAAoB;;;;CAchC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { useNode } from '../useNode';
3
+ export const useMemoryNodeUpdates = () => {
4
+ const [node] = useNode();
5
+ const [resolver, seResolver] = useState();
6
+ useEffect(() => {
7
+ if (node) {
8
+ node.on('moduleResolverChanged', ({ resolver }) => {
9
+ seResolver(resolver);
10
+ });
11
+ }
12
+ // eslint-disable-next-line react-hooks/exhaustive-deps
13
+ }, []);
14
+ return { resolver };
15
+ };
16
+ //# sourceMappingURL=useMemoryNodeUpdates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../../src/contexts/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAc,CAAA;IACpC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAkB,CAAA;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAChD,UAAU,CAAC,QAAQ,CAAC,CAAA;YACtB,CAAC,CAAC,CAAA;SACH;QACD,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,EAAE,QAAQ,EAAE,CAAA;AACrB,CAAC,CAAA"}
@@ -3,6 +3,10 @@ interface UseArchiveArchivists {
3
3
  archivePayloadWrapper?: ArchivistWrapper;
4
4
  archiveBoundWitnessWrapper?: ArchivistWrapper;
5
5
  }
6
- export declare const useArchiveArchivists: (archiveName?: string, required?: boolean) => UseArchiveArchivists;
6
+ export declare const useArchiveArchivistsRaw: (archiveName?: string, required?: boolean, refresher?: unknown) => UseArchiveArchivists;
7
+ export declare const useArchiveArchivists: (archiveName?: string | undefined, required?: boolean | undefined, refresher?: unknown) => {
8
+ archiveBoundWitnessWrapper: ArchivistWrapper | undefined;
9
+ archivePayloadWrapper: ArchivistWrapper | undefined;
10
+ };
7
11
  export {};
8
12
  //# sourceMappingURL=useArchiveArchivists.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useArchiveArchivists.d.ts","sourceRoot":"","sources":["../../../src/contexts/useArchiveArchivists.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAOzD,UAAU,oBAAoB;IAC5B,qBAAqB,CAAC,EAAE,gBAAgB,CAAA;IACxC,0BAA0B,CAAC,EAAE,gBAAgB,CAAA;CAC9C;AAED,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,aAAa,OAAO,KAAG,oBAiB/E,CAAA"}
1
+ {"version":3,"file":"useArchiveArchivists.d.ts","sourceRoot":"","sources":["../../../src/contexts/useArchiveArchivists.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAQzD,UAAU,oBAAoB;IAC5B,qBAAqB,CAAC,EAAE,gBAAgB,CAAA;IACxC,0BAA0B,CAAC,EAAE,gBAAgB,CAAA;CAC9C;AAID,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,aAAa,OAAO,cAAc,OAAO,KAAG,oBAiBvG,CAAA;AAED,eAAO,MAAM,oBAAoB;;;CAKhC,CAAA"}
@@ -1,13 +1,19 @@
1
1
  import { ArchivistWrapper } from '@xyo-network/archivist';
2
2
  import { usePromise } from '@xyo-network/react-shared';
3
3
  import { useMemo } from 'react';
4
+ import { useMemoryNodeUpdates } from './hooks';
4
5
  import { useNode } from './useNode';
5
- export const useArchiveArchivists = (archiveName, required) => {
6
+ export const useArchiveArchivistsRaw = (archiveName, required, refresher) => {
6
7
  const [node] = useNode(required);
7
8
  const payloadArchivistReq = useMemo(() => (archiveName && node ? node?.tryResolveWrapped(ArchivistWrapper, { name: [encodeURIComponent(`${archiveName}[payload]`)] }) : undefined), [archiveName, node]);
8
9
  const boundWitnessArchivistReq = useMemo(() => archiveName && node ? node?.tryResolveWrapped(ArchivistWrapper, { name: [encodeURIComponent(`${archiveName}[boundwitness]`)] }) : undefined, [archiveName, node]);
9
- const [archivePayloadWrapper] = usePromise(payloadArchivistReq, [payloadArchivistReq]);
10
- const [archiveBoundWitnessWrapper] = usePromise(boundWitnessArchivistReq, [boundWitnessArchivistReq]);
10
+ const [archivePayloadWrapper] = usePromise(payloadArchivistReq, [payloadArchivistReq, refresher]);
11
+ const [archiveBoundWitnessWrapper] = usePromise(boundWitnessArchivistReq, [boundWitnessArchivistReq, refresher]);
11
12
  return { archiveBoundWitnessWrapper: archiveBoundWitnessWrapper?.shift(), archivePayloadWrapper: archivePayloadWrapper?.shift() };
12
13
  };
14
+ export const useArchiveArchivists = (...[archive, required, refresher]) => {
15
+ const { resolver } = useMemoryNodeUpdates();
16
+ const { archiveBoundWitnessWrapper, archivePayloadWrapper } = useArchiveArchivistsRaw(archive, required, refresher ?? resolver);
17
+ return { archiveBoundWitnessWrapper, archivePayloadWrapper };
18
+ };
13
19
  //# sourceMappingURL=useArchiveArchivists.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useArchiveArchivists.js","sourceRoot":"","sources":["../../../src/contexts/useArchiveArchivists.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,QAAkB,EAAwB,EAAE;IACrG,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAa,QAAQ,CAAC,CAAA;IAE5C,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC9I,CAAC,WAAW,EAAE,IAAI,CAAC,CACpB,CAAA;IACD,MAAM,wBAAwB,GAAG,OAAO,CACtC,GAAG,EAAE,CACH,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,WAAW,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7I,CAAC,WAAW,EAAE,IAAI,CAAC,CACpB,CAAA;IAED,MAAM,CAAC,qBAAqB,CAAC,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtF,MAAM,CAAC,0BAA0B,CAAC,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAErG,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,CAAA;AACnI,CAAC,CAAA"}
1
+ {"version":3,"file":"useArchiveArchivists.js","sourceRoot":"","sources":["../../../src/contexts/useArchiveArchivists.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,WAAoB,EAAE,QAAkB,EAAE,SAAmB,EAAwB,EAAE;IAC7H,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAa,QAAQ,CAAC,CAAA;IAE5C,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAC9I,CAAC,WAAW,EAAE,IAAI,CAAC,CACpB,CAAA;IACD,MAAM,wBAAwB,GAAG,OAAO,CACtC,GAAG,EAAE,CACH,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,WAAW,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7I,CAAC,WAAW,EAAE,IAAI,CAAC,CACpB,CAAA;IAED,MAAM,CAAC,qBAAqB,CAAC,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAA;IACjG,MAAM,CAAC,0BAA0B,CAAC,GAAG,UAAU,CAAC,wBAAwB,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,CAAA;IAEhH,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,CAAA;AACnI,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAa,EAAE,EAAE;IACpF,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAC3C,MAAM,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,GAAG,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,IAAI,QAAQ,CAAC,CAAA;IAE/H,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,CAAA;AAC9D,CAAC,CAAA"}
@@ -1,3 +1,8 @@
1
1
  import { XyoPayload, XyoPayloads } from '@xyo-network/payload-model';
2
- export declare const useNodeQueryDiviner: (moduleIdentifier?: string, query?: XyoPayload) => [XyoPayloads | undefined, Error | undefined];
2
+ export declare const useNodeQueryDivinerRaw: (moduleIdentifier?: string, query?: XyoPayload, refresher?: unknown) => [XyoPayloads | undefined, Error | undefined];
3
+ export declare const useNodeQueryDiviner: (moduleIdentifier?: string | undefined, query?: (import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
4
+ schema: string;
5
+ }) | undefined, refresher?: unknown) => [XyoPayloads<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
6
+ schema: string;
7
+ }> | undefined, Error | undefined];
3
8
  //# sourceMappingURL=useNodeQueryDiviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeQueryDiviner.d.ts","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAMpE,eAAO,MAAM,mBAAmB,sBAAuB,MAAM,UAAU,UAAU,KAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2B9H,CAAA"}
1
+ {"version":3,"file":"useNodeQueryDiviner.d.ts","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AASpE,eAAO,MAAM,sBAAsB,sBACd,MAAM,UACjB,UAAU,cACN,OAAO,KAClB,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2B7C,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;kCAK/B,CAAA"}
@@ -2,8 +2,9 @@ import { useAsyncEffect } from '@xylabs/react-shared';
2
2
  import { DivinerWrapper } from '@xyo-network/diviner-wrapper';
3
3
  import { assertDefinedEx } from '@xyo-network/react-shared';
4
4
  import { useState } from 'react';
5
+ import { useMemoryNodeUpdates } from './hooks';
5
6
  import { useNode } from './useNode';
6
- export const useNodeQueryDiviner = (moduleIdentifier, query) => {
7
+ export const useNodeQueryDivinerRaw = (moduleIdentifier, query, refresher) => {
7
8
  const [result, setResult] = useState();
8
9
  const [error, setError] = useState();
9
10
  const [node] = useNode();
@@ -24,7 +25,12 @@ export const useNodeQueryDiviner = (moduleIdentifier, query) => {
24
25
  setError(e);
25
26
  }
26
27
  }
27
- }, [moduleIdentifier, node, query]);
28
+ }, [moduleIdentifier, node, query, refresher]);
29
+ return [result, error];
30
+ };
31
+ export const useNodeQueryDiviner = (...[moduleIdentifier, query, refresher]) => {
32
+ const { resolver } = useMemoryNodeUpdates();
33
+ const [result, error] = useNodeQueryDivinerRaw(moduleIdentifier, query, refresher ?? resolver);
28
34
  return [result, error];
29
35
  };
30
36
  //# sourceMappingURL=useNodeQueryDiviner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNodeQueryDiviner.js","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,gBAAyB,EAAE,KAAkB,EAAgD,EAAE;IACjI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAe,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAc,CAAA;IAEpC,cAAc;IACZ,uDAAuD;IACvD,KAAK,IAAI,EAAE;QACT,IAAI,gBAAgB,IAAI,KAAK,IAAI,IAAI,EAAE,QAAQ,EAAE;YAC/C,IAAI;gBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBAC1F,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,oCAAoC,gBAAgB,EAAE,CAAC,CAAA;gBAErF,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;gBAClD,SAAS,CAAC,MAAM,CAAC,CAAA;gBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpB,QAAQ,CAAC,CAAU,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,CAChC,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"useNodeQueryDiviner.js","sourceRoot":"","sources":["../../../src/contexts/useNodeQueryDiviner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,gBAAyB,EACzB,KAAkB,EAClB,SAAmB,EAC2B,EAAE;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAe,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAc,CAAA;IAEpC,cAAc;IACZ,uDAAuD;IACvD,KAAK,IAAI,EAAE;QACT,IAAI,gBAAgB,IAAI,KAAK,IAAI,IAAI,EAAE,QAAQ,EAAE;YAC/C,IAAI;gBACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBAC1F,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,oCAAoC,gBAAgB,EAAE,CAAC,CAAA;gBAErF,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;gBAClD,SAAS,CAAC,MAAM,CAAC,CAAA;gBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpB,QAAQ,CAAC,CAAU,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAC3C,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,SAAS,CAAa,EAA6C,EAAE;IACpI,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAC3C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,SAAS,IAAI,QAAQ,CAAC,CAAA;IAE9F,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
package/package.json CHANGED
@@ -20,7 +20,7 @@
20
20
  "@xyo-network/module-model": "^2.43.7",
21
21
  "@xyo-network/node": "^2.43.7",
22
22
  "@xyo-network/payload-model": "^2.43.7",
23
- "@xyo-network/react-shared": "^2.41.29",
23
+ "@xyo-network/react-shared": "^2.41.31",
24
24
  "@xyo-network/witness": "^2.43.7",
25
25
  "lodash": "^4.17.21"
26
26
  },
@@ -78,5 +78,5 @@
78
78
  },
79
79
  "sideEffects": false,
80
80
  "types": "dist/esm/index.d.ts",
81
- "version": "2.41.29"
81
+ "version": "2.41.31"
82
82
  }
@@ -0,0 +1 @@
1
+ export * from './useMemoryNodeUpdates'
@@ -0,0 +1,21 @@
1
+ import { ModuleResolver } from '@xyo-network/module-model'
2
+ import { MemoryNode } from '@xyo-network/node'
3
+ import { useEffect, useState } from 'react'
4
+
5
+ import { useNode } from '../useNode'
6
+
7
+ export const useMemoryNodeUpdates = () => {
8
+ const [node] = useNode<MemoryNode>()
9
+ const [resolver, seResolver] = useState<ModuleResolver>()
10
+
11
+ useEffect(() => {
12
+ if (node) {
13
+ node.on('moduleResolverChanged', ({ resolver }) => {
14
+ seResolver(resolver)
15
+ })
16
+ }
17
+ // eslint-disable-next-line react-hooks/exhaustive-deps
18
+ }, [])
19
+
20
+ return { resolver }
21
+ }
@@ -3,6 +3,7 @@ import { MemoryNode } from '@xyo-network/node'
3
3
  import { usePromise } from '@xyo-network/react-shared'
4
4
  import { useMemo } from 'react'
5
5
 
6
+ import { useMemoryNodeUpdates } from './hooks'
6
7
  import { useNode } from './useNode'
7
8
 
8
9
  interface UseArchiveArchivists {
@@ -10,7 +11,9 @@ interface UseArchiveArchivists {
10
11
  archiveBoundWitnessWrapper?: ArchivistWrapper
11
12
  }
12
13
 
13
- export const useArchiveArchivists = (archiveName?: string, required?: boolean): UseArchiveArchivists => {
14
+ type HookParams = Parameters<typeof useArchiveArchivistsRaw>
15
+
16
+ export const useArchiveArchivistsRaw = (archiveName?: string, required?: boolean, refresher?: unknown): UseArchiveArchivists => {
14
17
  const [node] = useNode<MemoryNode>(required)
15
18
 
16
19
  const payloadArchivistReq = useMemo(
@@ -23,8 +26,15 @@ export const useArchiveArchivists = (archiveName?: string, required?: boolean):
23
26
  [archiveName, node],
24
27
  )
25
28
 
26
- const [archivePayloadWrapper] = usePromise(payloadArchivistReq, [payloadArchivistReq])
27
- const [archiveBoundWitnessWrapper] = usePromise(boundWitnessArchivistReq, [boundWitnessArchivistReq])
29
+ const [archivePayloadWrapper] = usePromise(payloadArchivistReq, [payloadArchivistReq, refresher])
30
+ const [archiveBoundWitnessWrapper] = usePromise(boundWitnessArchivistReq, [boundWitnessArchivistReq, refresher])
28
31
 
29
32
  return { archiveBoundWitnessWrapper: archiveBoundWitnessWrapper?.shift(), archivePayloadWrapper: archivePayloadWrapper?.shift() }
30
33
  }
34
+
35
+ export const useArchiveArchivists = (...[archive, required, refresher]: HookParams) => {
36
+ const { resolver } = useMemoryNodeUpdates()
37
+ const { archiveBoundWitnessWrapper, archivePayloadWrapper } = useArchiveArchivistsRaw(archive, required, refresher ?? resolver)
38
+
39
+ return { archiveBoundWitnessWrapper, archivePayloadWrapper }
40
+ }
@@ -5,9 +5,16 @@ import { XyoPayload, XyoPayloads } from '@xyo-network/payload-model'
5
5
  import { assertDefinedEx } from '@xyo-network/react-shared'
6
6
  import { useState } from 'react'
7
7
 
8
+ import { useMemoryNodeUpdates } from './hooks'
8
9
  import { useNode } from './useNode'
9
10
 
10
- export const useNodeQueryDiviner = (moduleIdentifier?: string, query?: XyoPayload): [XyoPayloads | undefined, Error | undefined] => {
11
+ type HookParams = Parameters<typeof useNodeQueryDivinerRaw>
12
+
13
+ export const useNodeQueryDivinerRaw = (
14
+ moduleIdentifier?: string,
15
+ query?: XyoPayload,
16
+ refresher?: unknown,
17
+ ): [XyoPayloads | undefined, Error | undefined] => {
11
18
  const [result, setResult] = useState<XyoPayloads>()
12
19
  const [error, setError] = useState<Error>()
13
20
  const [node] = useNode<MemoryNode>()
@@ -30,8 +37,15 @@ export const useNodeQueryDiviner = (moduleIdentifier?: string, query?: XyoPayloa
30
37
  }
31
38
  }
32
39
  },
33
- [moduleIdentifier, node, query],
40
+ [moduleIdentifier, node, query, refresher],
34
41
  )
35
42
 
36
43
  return [result, error]
37
44
  }
45
+
46
+ export const useNodeQueryDiviner = (...[moduleIdentifier, query, refresher]: HookParams): ReturnType<typeof useNodeQueryDivinerRaw> => {
47
+ const { resolver } = useMemoryNodeUpdates()
48
+ const [result, error] = useNodeQueryDivinerRaw(moduleIdentifier, query, refresher ?? resolver)
49
+
50
+ return [result, error]
51
+ }