@xyo-network/react-archivist 2.37.29 → 2.38.0-rc.2

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 (52) hide show
  1. package/dist/cjs/components/Details.js +1 -1
  2. package/dist/cjs/components/Details.js.map +1 -1
  3. package/dist/cjs/contexts/Provider/CookieArchivistProvider.d.ts +2 -2
  4. package/dist/cjs/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
  5. package/dist/cjs/contexts/Provider/CookieArchivistProvider.js +28 -15
  6. package/dist/cjs/contexts/Provider/CookieArchivistProvider.js.map +1 -1
  7. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.d.ts +2 -2
  8. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
  9. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js +28 -15
  10. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
  11. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts +3 -3
  12. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
  13. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js +28 -15
  14. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
  15. package/dist/cjs/contexts/Provider/StorageArchivistProvider.d.ts +2 -2
  16. package/dist/cjs/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
  17. package/dist/cjs/contexts/Provider/StorageArchivistProvider.js +28 -15
  18. package/dist/cjs/contexts/Provider/StorageArchivistProvider.js.map +1 -1
  19. package/dist/cjs/contexts/use.d.ts +1 -2
  20. package/dist/cjs/contexts/use.d.ts.map +1 -1
  21. package/dist/cjs/contexts/use.js +2 -2
  22. package/dist/cjs/contexts/use.js.map +1 -1
  23. package/dist/docs.json +658 -622
  24. package/dist/esm/components/Details.js +1 -1
  25. package/dist/esm/components/Details.js.map +1 -1
  26. package/dist/esm/contexts/Provider/CookieArchivistProvider.d.ts +2 -2
  27. package/dist/esm/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
  28. package/dist/esm/contexts/Provider/CookieArchivistProvider.js +28 -14
  29. package/dist/esm/contexts/Provider/CookieArchivistProvider.js.map +1 -1
  30. package/dist/esm/contexts/Provider/MemoryArchivistProvider.d.ts +2 -2
  31. package/dist/esm/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
  32. package/dist/esm/contexts/Provider/MemoryArchivistProvider.js +28 -14
  33. package/dist/esm/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
  34. package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts +3 -3
  35. package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
  36. package/dist/esm/contexts/Provider/RemoteArchivistProvider.js +28 -14
  37. package/dist/esm/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
  38. package/dist/esm/contexts/Provider/StorageArchivistProvider.d.ts +2 -2
  39. package/dist/esm/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
  40. package/dist/esm/contexts/Provider/StorageArchivistProvider.js +28 -14
  41. package/dist/esm/contexts/Provider/StorageArchivistProvider.js.map +1 -1
  42. package/dist/esm/contexts/use.d.ts +1 -2
  43. package/dist/esm/contexts/use.d.ts.map +1 -1
  44. package/dist/esm/contexts/use.js +2 -2
  45. package/dist/esm/contexts/use.js.map +1 -1
  46. package/package.json +7 -6
  47. package/src/components/Details.tsx +1 -1
  48. package/src/contexts/Provider/CookieArchivistProvider.tsx +39 -29
  49. package/src/contexts/Provider/MemoryArchivistProvider.tsx +39 -29
  50. package/src/contexts/Provider/RemoteArchivistProvider.tsx +40 -30
  51. package/src/contexts/Provider/StorageArchivistProvider.tsx +39 -29
  52. package/src/contexts/use.ts +4 -4
@@ -12,7 +12,7 @@ export const ArchivistDetails = ({ archivist: archivistProp, ...props }) => {
12
12
  const [refresh, setRefresh] = useState(0);
13
13
  const [wrapper, setWrapper] = useState();
14
14
  useEffect(() => {
15
- setWrapper(archivist ? new XyoArchivistWrapper(archivist) : undefined);
15
+ setWrapper(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined);
16
16
  }, [archivist]);
17
17
  useAsyncEffect(
18
18
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1 +1 @@
1
- {"version":3,"file":"Details.js","sourceRoot":"","sources":["../../../src/components/Details.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAgB,4BAA4B,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEvI,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,MAAM,CAAC,MAAM,gBAAgB,GAA+B,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACrG,MAAM,EAAE,SAAS,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,CAAA;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAyB,CAAA;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAuB,CAAA;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACxE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;QAC7C,IAAI,OAAO,EAAE,EAAE;YACb,WAAW,CAAC,QAAQ,CAAC,CAAA;SACtB;IACH,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAA;IAED,OAAO,CACL,MAAC,OAAO,OAAK,KAAK,aAChB,KAAC,UAAU,cAAE,aAAa,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAc,EAC1E,MAAC,WAAW,eACV,KAAC,QAAQ,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,6BAA6B,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,uBAE/F,EACX,KAAC,QAAQ,IAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,4BAA4B,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,sBAE5F,EACX,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;wBACzB,CAAC,wBAGQ,IACC,IACN,CACX,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Details.js","sourceRoot":"","sources":["../../../src/components/Details.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAgB,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAgB,4BAA4B,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEvI,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAM1C,MAAM,CAAC,MAAM,gBAAgB,GAA+B,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACrG,MAAM,EAAE,SAAS,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,CAAA;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAyB,CAAA;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAuB,CAAA;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACpF,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;QAC7C,IAAI,OAAO,EAAE,EAAE;YACb,WAAW,CAAC,QAAQ,CAAC,CAAA;SACtB;IACH,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CACnB,CAAA;IAED,OAAO,CACL,MAAC,OAAO,OAAK,KAAK,aAChB,KAAC,UAAU,cAAE,aAAa,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAc,EAC1E,MAAC,WAAW,eACV,KAAC,QAAQ,IAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,6BAA6B,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,uBAE/F,EACX,KAAC,QAAQ,IAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,4BAA4B,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,sBAE5F,EACX,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;wBACzB,CAAC,wBAGQ,IACC,IACN,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { XyoCookieArchivistConfig } from '@xyo-network/archivist';
3
- import { XyoModuleResolverFunc } from '@xyo-network/module';
3
+ import { XyoModuleResolver } from '@xyo-network/module';
4
4
  import { ContextExProviderProps } from '@xyo-network/react-shared';
5
5
  export declare type CookieArchivistProviderProps = ContextExProviderProps<{
6
6
  config: XyoCookieArchivistConfig;
7
- resolver?: XyoModuleResolverFunc;
7
+ resolver?: XyoModuleResolver;
8
8
  }>;
9
9
  export declare const CookieArchivistProvider: React.FC<CookieArchivistProviderProps>;
10
10
  //# sourceMappingURL=CookieArchivistProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CookieArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/CookieArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA2C,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,oBAAY,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,MAAM,EAAE,wBAAwB,CAAA;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAgC1E,CAAA"}
1
+ {"version":3,"file":"CookieArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/CookieArchivistProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2C,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAOlE,oBAAY,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,MAAM,EAAE,wBAAwB,CAAA;IAChC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAwC1E,CAAA"}
@@ -1,24 +1,38 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useAsyncEffect } from '@xylabs/react-shared';
2
3
  import { XyoArchivistWrapper, XyoCookieArchivist } from '@xyo-network/archivist';
4
+ import { XyoModuleResolver } from '@xyo-network/module';
3
5
  import merge from 'lodash/merge';
6
+ import { useMemo, useState } from 'react';
4
7
  import { useArchivist } from '../use';
5
8
  import { ArchivistProvider } from './Provider';
6
9
  export const CookieArchivistProvider = ({ config, resolver, ...props }) => {
7
10
  const { archivist } = useArchivist();
8
- const activeResolver = (address) => {
9
- if (archivist && address === archivist?.address) {
10
- return new XyoArchivistWrapper(archivist);
11
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist]);
12
+ const activeResolver = useMemo(() => (resolver ?? wrapper ? new XyoModuleResolver() : undefined), [resolver, wrapper]);
13
+ if (archivist) {
14
+ activeResolver?.add(new XyoArchivistWrapper({ module: archivist }));
15
+ }
16
+ const [activeArchivist, setActiveArchivist] = useState();
17
+ useAsyncEffect(
18
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19
+ async (mounted) => {
20
+ const activeArchivist = await new XyoCookieArchivist({
21
+ config: merge({}, config, archivist
22
+ ? {
23
+ parents: {
24
+ commit: [archivist.address],
25
+ read: [archivist.address],
26
+ write: [archivist.address],
27
+ },
28
+ }
29
+ : undefined),
30
+ resolver: activeResolver,
31
+ }).start();
32
+ if (mounted()) {
33
+ setActiveArchivist(activeArchivist);
11
34
  }
12
- return resolver?.(address) ?? null;
13
- };
14
- return (_jsx(ArchivistProvider, { archivist: new XyoCookieArchivist(merge({}, config, archivist
15
- ? {
16
- parents: {
17
- commit: [archivist.address],
18
- read: [archivist.address],
19
- write: [archivist.address],
20
- },
21
- }
22
- : undefined), undefined, activeResolver), ...props }));
35
+ }, [activeResolver, archivist, config]);
36
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
23
37
  };
24
38
  //# sourceMappingURL=CookieArchivistProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CookieArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/CookieArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAG1G,OAAO,KAAK,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,MAAM,CAAC,MAAM,uBAAuB,GAA2C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,cAAc,GAA0B,CAAC,OAAe,EAAE,EAAE;QAChE,IAAI,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,EAAE;YAC/C,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAA;SAC1C;QACD,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;IACpC,CAAC,CAAA;IACD,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,kBAAkB,CACpB,KAAK,CACH,EAAE,EACF,MAAM,EACN,SAAS;YACP,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;iBAC3B;aACF;YACH,CAAC,CAAC,SAAS,CACd,EACD,SAAS,EACT,cAAc,CACf,KAEC,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"CookieArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/CookieArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,MAAM,CAAC,MAAM,uBAAuB,GAA2C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACpH,MAAM,cAAc,GAAkC,OAAO,CAC3D,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACjE,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAA;IACD,IAAI,SAAS,EAAE;QACb,cAAc,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;KACpE;IAED,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAsB,CAAA;IAE5E,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,eAAe,GAAG,MAAM,IAAI,kBAAkB,CAAC;YACnD,MAAM,EAAE,KAAK,CACX,EAAE,EACF,MAAM,EACN,SAAS;gBACP,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;qBAC3B;iBACF;gBACH,CAAC,CAAC,SAAS,CACd;YACD,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,OAAO,EAAE,EAAE;YACb,kBAAkB,CAAC,eAAe,CAAC,CAAA;SACpC;IACH,CAAC,EACD,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CACpC,CAAA;IAED,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,eAAe,KAAM,KAAK,GAAI,CAAA;AACrE,CAAC,CAAA"}
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { XyoMemoryArchivistConfig } from '@xyo-network/archivist';
3
- import { XyoModuleResolverFunc } from '@xyo-network/module';
3
+ import { XyoModuleResolver } from '@xyo-network/module';
4
4
  import { ContextExProviderProps } from '@xyo-network/react-shared';
5
5
  export declare type MemoryArchivistProviderProps = ContextExProviderProps<{
6
6
  config?: XyoMemoryArchivistConfig;
7
- resolver?: XyoModuleResolverFunc;
7
+ resolver?: XyoModuleResolver;
8
8
  }>;
9
9
  export declare const MemoryArchivistProvider: React.FC<MemoryArchivistProviderProps>;
10
10
  //# sourceMappingURL=MemoryArchivistProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/MemoryArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA2C,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,oBAAY,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,MAAM,CAAC,EAAE,wBAAwB,CAAA;IACjC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAgC1E,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/MemoryArchivistProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAA2C,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAOlE,oBAAY,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,MAAM,CAAC,EAAE,wBAAwB,CAAA;IACjC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAwC1E,CAAA"}
@@ -1,24 +1,38 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useAsyncEffect } from '@xylabs/react-shared';
2
3
  import { XyoArchivistWrapper, XyoMemoryArchivist } from '@xyo-network/archivist';
4
+ import { XyoModuleResolver } from '@xyo-network/module';
3
5
  import merge from 'lodash/merge';
6
+ import { useMemo, useState } from 'react';
4
7
  import { useArchivist } from '../use';
5
8
  import { ArchivistProvider } from './Provider';
6
9
  export const MemoryArchivistProvider = ({ config, resolver, ...props }) => {
7
10
  const { archivist } = useArchivist();
8
- const activeResolver = (address) => {
9
- if (archivist && address === archivist?.address) {
10
- return new XyoArchivistWrapper(archivist);
11
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist]);
12
+ const activeResolver = useMemo(() => (resolver ?? wrapper ? new XyoModuleResolver() : undefined), [resolver, wrapper]);
13
+ if (archivist) {
14
+ activeResolver?.add(new XyoArchivistWrapper({ module: archivist }));
15
+ }
16
+ const [activeArchivist, setActiveArchivist] = useState();
17
+ useAsyncEffect(
18
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19
+ async (mounted) => {
20
+ const activeArchivist = await new XyoMemoryArchivist({
21
+ config: merge({}, config, archivist
22
+ ? {
23
+ parents: {
24
+ commit: [archivist.address],
25
+ read: [archivist.address],
26
+ write: [archivist.address],
27
+ },
28
+ }
29
+ : undefined),
30
+ resolver: activeResolver,
31
+ }).start();
32
+ if (mounted()) {
33
+ setActiveArchivist(activeArchivist);
11
34
  }
12
- return resolver?.(address) ?? null;
13
- };
14
- return (_jsx(ArchivistProvider, { archivist: new XyoMemoryArchivist(merge({}, config, archivist
15
- ? {
16
- parents: {
17
- commit: [archivist.address],
18
- read: [archivist.address],
19
- write: [archivist.address],
20
- },
21
- }
22
- : undefined), undefined, activeResolver), ...props }));
35
+ }, [activeResolver, archivist, config]);
36
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
23
37
  };
24
38
  //# sourceMappingURL=MemoryArchivistProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/MemoryArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAG1G,OAAO,KAAK,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,MAAM,CAAC,MAAM,uBAAuB,GAA2C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,cAAc,GAA0B,CAAC,OAAe,EAAE,EAAE;QAChE,IAAI,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,EAAE;YAC/C,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAA;SAC1C;QACD,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;IACpC,CAAC,CAAA;IACD,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,kBAAkB,CACpB,KAAK,CACH,EAAE,EACF,MAAM,EACN,SAAS;YACP,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;iBAC3B;aACF;YACH,CAAC,CAAC,SAAS,CACd,EACD,SAAS,EACT,cAAc,CACf,KAEC,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"MemoryArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/MemoryArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAA4B,MAAM,wBAAwB,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,MAAM,CAAC,MAAM,uBAAuB,GAA2C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACpH,MAAM,cAAc,GAAkC,OAAO,CAC3D,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACjE,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAA;IACD,IAAI,SAAS,EAAE;QACb,cAAc,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;KACpE;IAED,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAsB,CAAA;IAE5E,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,eAAe,GAAG,MAAM,IAAI,kBAAkB,CAAC;YACnD,MAAM,EAAE,KAAK,CACX,EAAE,EACF,MAAM,EACN,SAAS;gBACP,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;qBAC3B;iBACF;gBACH,CAAC,CAAC,SAAS,CACd;YACD,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,OAAO,EAAE,EAAE;YACb,kBAAkB,CAAC,eAAe,CAAC,CAAA;SACpC;IACH,CAAC,EACD,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CACpC,CAAA;IAED,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,eAAe,KAAM,KAAK,GAAI,CAAA;AACrE,CAAC,CAAA"}
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { XyoRemoteArchivistConfig } from '@xyo-network/api';
3
- import { XyoModuleResolverFunc } from '@xyo-network/module';
3
+ import { XyoModuleResolver } from '@xyo-network/module';
4
4
  import { ContextExProviderProps } from '@xyo-network/react-shared';
5
5
  export declare type RemoteArchivistProviderProps = ContextExProviderProps<{
6
- config: XyoRemoteArchivistConfig;
7
- resolver?: XyoModuleResolverFunc;
6
+ config?: XyoRemoteArchivistConfig;
7
+ resolver?: XyoModuleResolver;
8
8
  }>;
9
9
  export declare const RemoteArchivistProvider: React.FC<RemoteArchivistProviderProps>;
10
10
  //# sourceMappingURL=RemoteArchivistProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/RemoteArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAsB,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,oBAAY,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,MAAM,EAAE,wBAAwB,CAAA;IAChC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAgC1E,CAAA"}
1
+ {"version":3,"file":"RemoteArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/RemoteArchivistProvider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAsB,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAOlE,oBAAY,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,MAAM,CAAC,EAAE,wBAAwB,CAAA;IACjC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,CAAC,CAAA;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAwC1E,CAAA"}
@@ -1,25 +1,39 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useAsyncEffect } from '@xylabs/react-shared';
2
3
  import { XyoRemoteArchivist } from '@xyo-network/api';
3
4
  import { XyoArchivistWrapper } from '@xyo-network/archivist';
5
+ import { XyoModuleResolver } from '@xyo-network/module';
4
6
  import merge from 'lodash/merge';
7
+ import { useMemo, useState } from 'react';
5
8
  import { useArchivist } from '../use';
6
9
  import { ArchivistProvider } from './Provider';
7
10
  export const RemoteArchivistProvider = ({ config, resolver, ...props }) => {
8
11
  const { archivist } = useArchivist();
9
- const activeResolver = (address) => {
10
- if (archivist && address === archivist?.address) {
11
- return new XyoArchivistWrapper(archivist);
12
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist]);
13
+ const activeResolver = useMemo(() => (resolver ?? wrapper ? new XyoModuleResolver() : undefined), [resolver, wrapper]);
14
+ if (archivist) {
15
+ activeResolver?.add(new XyoArchivistWrapper({ module: archivist }));
16
+ }
17
+ const [activeArchivist, setActiveArchivist] = useState();
18
+ useAsyncEffect(
19
+ // eslint-disable-next-line react-hooks/exhaustive-deps
20
+ async (mounted) => {
21
+ const activeArchivist = await new XyoRemoteArchivist({
22
+ config: merge({}, config, archivist
23
+ ? {
24
+ parents: {
25
+ commit: [archivist.address],
26
+ read: [archivist.address],
27
+ write: [archivist.address],
28
+ },
29
+ }
30
+ : undefined),
31
+ resolver: activeResolver,
32
+ }).start();
33
+ if (mounted()) {
34
+ setActiveArchivist(activeArchivist);
12
35
  }
13
- return resolver?.(address) ?? null;
14
- };
15
- return (_jsx(ArchivistProvider, { archivist: new XyoRemoteArchivist(merge({}, config, archivist
16
- ? {
17
- parents: {
18
- commit: [archivist.address],
19
- read: [archivist.address],
20
- write: [archivist.address],
21
- },
22
- }
23
- : undefined), undefined, activeResolver), ...props }));
36
+ }, [activeResolver, archivist, config]);
37
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
24
38
  };
25
39
  //# sourceMappingURL=RemoteArchivistProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/RemoteArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAG5D,OAAO,KAAK,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,MAAM,CAAC,MAAM,uBAAuB,GAA2C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,cAAc,GAA0B,CAAC,OAAe,EAAE,EAAE;QAChE,IAAI,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,EAAE;YAC/C,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAA;SAC1C;QACD,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;IACpC,CAAC,CAAA;IACD,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,kBAAkB,CACpB,KAAK,CACH,EAAE,EACF,MAAM,EACN,SAAS;YACP,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;iBAC3B;aACF;YACH,CAAC,CAAC,SAAS,CACd,EACD,SAAS,EACT,cAAc,CACf,KAEC,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"RemoteArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/RemoteArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAA4B,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,MAAM,CAAC,MAAM,uBAAuB,GAA2C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACpH,MAAM,cAAc,GAAkC,OAAO,CAC3D,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACjE,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAA;IACD,IAAI,SAAS,EAAE;QACb,cAAc,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;KACpE;IAED,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAsB,CAAA;IAE5E,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,eAAe,GAAG,MAAM,IAAI,kBAAkB,CAAC;YACnD,MAAM,EAAE,KAAK,CACX,EAAE,EACF,MAAM,EACN,SAAS;gBACP,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;qBAC3B;iBACF;gBACH,CAAC,CAAC,SAAS,CACd;YACD,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,OAAO,EAAE,EAAE;YACb,kBAAkB,CAAC,eAAe,CAAC,CAAA;SACpC;IACH,CAAC,EACD,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CACpC,CAAA;IAED,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,eAAe,KAAM,KAAK,GAAI,CAAA;AACrE,CAAC,CAAA"}
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { XyoStorageArchivistConfig } from '@xyo-network/archivist';
3
- import { XyoModuleResolverFunc } from '@xyo-network/module';
3
+ import { XyoModuleResolver } from '@xyo-network/module';
4
4
  import { ContextExProviderProps } from '@xyo-network/react-shared';
5
5
  export declare type StorageArchivistProviderProps = ContextExProviderProps<{
6
6
  config: XyoStorageArchivistConfig;
7
- resolver?: XyoModuleResolverFunc;
7
+ resolver?: XyoModuleResolver;
8
8
  }>;
9
9
  export declare const StorageArchivistProvider: React.FC<StorageArchivistProviderProps>;
10
10
  //# sourceMappingURL=StorageArchivistProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/StorageArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA4C,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,oBAAY,6BAA6B,GAAG,sBAAsB,CAAC;IACjE,MAAM,EAAE,yBAAyB,CAAA;IACjC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;CACjC,CAAC,CAAA;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAiC5E,CAAA"}
1
+ {"version":3,"file":"StorageArchivistProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/StorageArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA4C,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,oBAAY,6BAA6B,GAAG,sBAAsB,CAAC;IACjE,MAAM,EAAE,yBAAyB,CAAA;IACjC,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC7B,CAAC,CAAA;AAKF,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAwC5E,CAAA"}
@@ -1,24 +1,38 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { XyoArchivistWrapper, XyoStorageArchivist } from '@xyo-network/archivist';
3
+ import { XyoModuleResolver } from '@xyo-network/module';
3
4
  import merge from 'lodash/merge';
4
5
  import { useArchivist } from '../use';
5
6
  import { ArchivistProvider } from './Provider';
7
+ import { useAsyncEffect } from '@xylabs/react-shared';
8
+ import { useMemo, useState } from 'react';
6
9
  export const StorageArchivistProvider = ({ config, resolver, ...props }) => {
7
10
  const { archivist } = useArchivist();
8
- const activeResolver = (address) => {
9
- if (archivist && address === archivist?.address) {
10
- return new XyoArchivistWrapper(archivist);
11
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist]);
12
+ const activeResolver = useMemo(() => (resolver ?? wrapper ? new XyoModuleResolver() : undefined), [resolver, wrapper]);
13
+ if (archivist) {
14
+ activeResolver?.add(new XyoArchivistWrapper({ module: archivist }));
15
+ }
16
+ const [activeArchivist, setActiveArchivist] = useState();
17
+ useAsyncEffect(
18
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19
+ async (mounted) => {
20
+ const activeArchivist = await new XyoStorageArchivist({
21
+ config: merge({}, config, archivist
22
+ ? {
23
+ parents: {
24
+ commit: [archivist.address],
25
+ read: [archivist.address],
26
+ write: [archivist.address],
27
+ },
28
+ }
29
+ : undefined),
30
+ resolver: activeResolver,
31
+ }).start();
32
+ if (mounted()) {
33
+ setActiveArchivist(activeArchivist);
11
34
  }
12
- return resolver?.(address) ?? null;
13
- };
14
- return (_jsx(ArchivistProvider, { archivist: new XyoStorageArchivist(merge({}, config, archivist
15
- ? {
16
- parents: {
17
- commit: [archivist.address],
18
- read: [archivist.address],
19
- write: [archivist.address],
20
- },
21
- }
22
- : undefined), undefined, activeResolver), ...props }));
35
+ }, [activeResolver, archivist, config]);
36
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
23
37
  };
24
38
  //# sourceMappingURL=StorageArchivistProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/StorageArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAA6B,MAAM,wBAAwB,CAAA;AAG5G,OAAO,KAAK,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,MAAM,CAAC,MAAM,wBAAwB,GAA4C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAClH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,cAAc,GAA0B,CAAC,OAAe,EAAE,EAAE;QAChE,IAAI,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,EAAE;YAC/C,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAA;SAC1C;QACD,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;IACpC,CAAC,CAAA;IAED,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,mBAAmB,CACrB,KAAK,CACH,EAAE,EACF,MAAM,EACN,SAAS;YACP,CAAC,CAAC;gBACE,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;oBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;iBAC3B;aACF;YACH,CAAC,CAAC,SAAS,CACd,EACD,SAAS,EACT,cAAc,CACf,KAEC,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"StorageArchivistProvider.js","sourceRoot":"","sources":["../../../../src/contexts/Provider/StorageArchivistProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAA6B,MAAM,wBAAwB,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,CAAC,MAAM,wBAAwB,GAA4C,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAClH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACpH,MAAM,cAAc,GAAkC,OAAO,CAC3D,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACjE,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAA;IACD,IAAI,SAAS,EAAE;QACb,cAAc,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;KACpE;IAED,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAuB,CAAA;IAE7E,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,eAAe,GAAG,MAAM,IAAI,mBAAmB,CAAC;YACpD,MAAM,EAAE,KAAK,CACX,EAAE,EACF,MAAM,EACN,SAAS;gBACP,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBAC3B,IAAI,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;wBACzB,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;qBAC3B;iBACF;gBACH,CAAC,CAAC,SAAS,CACd;YACD,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,OAAO,EAAE,EAAE;YACb,kBAAkB,CAAC,eAAe,CAAC,CAAA;SACpC;IACH,CAAC,EACD,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CACpC,CAAA;IAED,OAAO,KAAC,iBAAiB,IAAC,SAAS,EAAE,eAAe,KAAM,KAAK,GAAI,CAAA;AACrE,CAAC,CAAA"}
@@ -1,5 +1,4 @@
1
- import { XyoPayloadFindFilter } from '@xyo-network/archivist';
2
- import { XyoPayload } from '@xyo-network/payload';
1
+ import { XyoPayload, XyoPayloadFindFilter } from '@xyo-network/payload';
3
2
  export declare const useArchivist: (required?: boolean) => Omit<import("./State").ArchivistState & import("@xyo-network/react-shared").ContextExState, "provided">;
4
3
  export declare const useArchivistGet: (ids?: string[], required?: boolean) => [(XyoPayload | null)[]?, Error?];
5
4
  export declare const useArchivistFind: <TFilter extends XyoPayloadFindFilter>(filter: TFilter, required?: boolean) => [(XyoPayload | null)[]?, Error?];
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/contexts/use.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,UAAU,EAAe,MAAM,sBAAsB,CAAA;AAM9D,eAAO,MAAM,YAAY,iIAExB,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,MAAM,EAAE,yBAAqB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAqBjG,CAAA;AAED,eAAO,MAAM,gBAAgB,iFAA8E,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAqBzI,CAAA"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/contexts/use.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAe,MAAM,sBAAsB,CAAA;AAMpF,eAAO,MAAM,YAAY,iIAExB,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,MAAM,EAAE,yBAAqB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAqBjG,CAAA;AAED,eAAO,MAAM,gBAAgB,iFAA8E,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAqBzI,CAAA"}
@@ -14,7 +14,7 @@ export const useArchivistGet = (ids, required = false) => {
14
14
  // eslint-disable-next-line react-hooks/exhaustive-deps
15
15
  async (mounted) => {
16
16
  try {
17
- const wrapper = archivist ? new XyoArchivistWrapper(archivist) : undefined;
17
+ const wrapper = archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined;
18
18
  const result = (await wrapper?.get(ids ?? [])) ?? [];
19
19
  if (mounted()) {
20
20
  setError(undefined);
@@ -35,7 +35,7 @@ export const useArchivistFind = (filter, required = false) => {
35
35
  // eslint-disable-next-line react-hooks/exhaustive-deps
36
36
  async (mounted) => {
37
37
  try {
38
- const wrapper = archivist ? new XyoArchivistWrapper(archivist) : undefined;
38
+ const wrapper = archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined;
39
39
  const result = await wrapper?.find(filter);
40
40
  if (mounted()) {
41
41
  setError(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/contexts/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAwB,MAAM,wBAAwB,CAAA;AAElF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE;IAC/C,OAAO,YAAY,CAAC,gBAAgB,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAc,EAAE,QAAQ,GAAG,KAAK,EAAoC,EAAE;IACpG,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAe,CAAA;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC1E,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YACpD,IAAI,OAAO,EAAE,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,WAAW,CAAC,MAAM,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EACD,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAA;IACD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAuC,MAAe,EAAE,QAAQ,GAAG,KAAK,EAAoC,EAAE;IAC5I,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAe,CAAA;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC1E,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1C,IAAI,OAAO,EAAE,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,WAAW,CAAC,MAAM,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EACD,CAAC,SAAS,EAAE,MAAM,CAAC,CACpB,CAAA;IACD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC,CAAA"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/contexts/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,EAAE;IAC/C,OAAO,YAAY,CAAC,gBAAgB,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAc,EAAE,QAAQ,GAAG,KAAK,EAAoC,EAAE;IACpG,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAe,CAAA;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACtF,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YACpD,IAAI,OAAO,EAAE,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,WAAW,CAAC,MAAM,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EACD,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAA;IACD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAuC,MAAe,EAAE,QAAQ,GAAG,KAAK,EAAoC,EAAE;IAC5I,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAe,CAAA;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACtF,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1C,IAAI,OAAO,EAAE,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,WAAW,CAAC,MAAM,CAAC,CAAA;aACpB;SACF;QAAC,OAAO,EAAE,EAAE;YACX,QAAQ,CAAC,EAAW,CAAC,CAAA;SACtB;IACH,CAAC,EACD,CAAC,SAAS,EAAE,MAAM,CAAC,CACpB,CAAA;IACD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC,CAAA"}
package/package.json CHANGED
@@ -13,8 +13,8 @@
13
13
  "@xylabs/react-button": "^2.15.1",
14
14
  "@xylabs/react-flexbox": "^2.15.1",
15
15
  "@xylabs/react-shared": "^2.15.1",
16
- "@xyo-network/module": "^2.37.6",
17
- "@xyo-network/react-shared": "^2.37.29",
16
+ "@xyo-network/module": "^2.38.0-rc.4",
17
+ "@xyo-network/react-shared": "^2.38.0-rc.2",
18
18
  "lodash": "^4.17.21",
19
19
  "tslib": "^2.4.0"
20
20
  },
@@ -29,9 +29,9 @@
29
29
  "description": "Common React library for all XYO projects that use React",
30
30
  "devDependencies": {
31
31
  "@types/lodash": "^4.14.186",
32
- "@xyo-network/api": "^2.37.6",
33
- "@xyo-network/archivist": "^2.37.6",
34
- "@xyo-network/payload": "^2.37.6"
32
+ "@xyo-network/api": "^2.38.0-rc.4",
33
+ "@xyo-network/archivist": "^2.38.0-rc.4",
34
+ "@xyo-network/payload": "^2.38.0-rc.4"
35
35
  },
36
36
  "browser": "dist/esm/index.js",
37
37
  "docs": "dist/docs.json",
@@ -75,5 +75,6 @@
75
75
  },
76
76
  "sideEffects": false,
77
77
  "types": "dist/esm/index.d.ts",
78
- "version": "2.37.29"
78
+ "version": "2.38.0-rc.2",
79
+ "stableVersion": "2.37.29"
79
80
  }
@@ -19,7 +19,7 @@ export const ArchivistDetails: React.FC<ArchivistDetails> = ({ archivist: archiv
19
19
  const [wrapper, setWrapper] = useState<XyoArchivistWrapper>()
20
20
 
21
21
  useEffect(() => {
22
- setWrapper(archivist ? new XyoArchivistWrapper(archivist) : undefined)
22
+ setWrapper(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined)
23
23
  }, [archivist])
24
24
 
25
25
  useAsyncEffect(
@@ -1,46 +1,56 @@
1
+ import { useAsyncEffect } from '@xylabs/react-shared'
1
2
  import { XyoArchivistWrapper, XyoCookieArchivist, XyoCookieArchivistConfig } from '@xyo-network/archivist'
2
- import { XyoModuleResolverFunc } from '@xyo-network/module'
3
+ import { XyoModuleResolver } from '@xyo-network/module'
3
4
  import { ContextExProviderProps } from '@xyo-network/react-shared'
4
5
  import merge from 'lodash/merge'
6
+ import { useMemo, useState } from 'react'
5
7
 
6
8
  import { useArchivist } from '../use'
7
9
  import { ArchivistProvider } from './Provider'
8
10
 
9
11
  export type CookieArchivistProviderProps = ContextExProviderProps<{
10
12
  config: XyoCookieArchivistConfig
11
- resolver?: XyoModuleResolverFunc
13
+ resolver?: XyoModuleResolver
12
14
  }>
13
15
 
14
16
  export const CookieArchivistProvider: React.FC<CookieArchivistProviderProps> = ({ config, resolver, ...props }) => {
15
17
  const { archivist } = useArchivist()
16
- const activeResolver: XyoModuleResolverFunc = (address: string) => {
17
- if (archivist && address === archivist?.address) {
18
- return new XyoArchivistWrapper(archivist)
19
- }
20
- return resolver?.(address) ?? null
18
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist])
19
+ const activeResolver: XyoModuleResolver | undefined = useMemo(
20
+ () => (resolver ?? wrapper ? new XyoModuleResolver() : undefined),
21
+ [resolver, wrapper],
22
+ )
23
+ if (archivist) {
24
+ activeResolver?.add(new XyoArchivistWrapper({ module: archivist }))
21
25
  }
22
- return (
23
- <ArchivistProvider
24
- archivist={
25
- new XyoCookieArchivist(
26
- merge(
27
- {},
28
- config,
29
- archivist
30
- ? {
31
- parents: {
32
- commit: [archivist.address],
33
- read: [archivist.address],
34
- write: [archivist.address],
35
- },
36
- }
37
- : undefined,
38
- ),
39
- undefined,
40
- activeResolver,
41
- )
26
+
27
+ const [activeArchivist, setActiveArchivist] = useState<XyoCookieArchivist>()
28
+
29
+ useAsyncEffect(
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ async (mounted) => {
32
+ const activeArchivist = await new XyoCookieArchivist({
33
+ config: merge(
34
+ {},
35
+ config,
36
+ archivist
37
+ ? {
38
+ parents: {
39
+ commit: [archivist.address],
40
+ read: [archivist.address],
41
+ write: [archivist.address],
42
+ },
43
+ }
44
+ : undefined,
45
+ ),
46
+ resolver: activeResolver,
47
+ }).start()
48
+ if (mounted()) {
49
+ setActiveArchivist(activeArchivist)
42
50
  }
43
- {...props}
44
- />
51
+ },
52
+ [activeResolver, archivist, config],
45
53
  )
54
+
55
+ return <ArchivistProvider archivist={activeArchivist} {...props} />
46
56
  }