@xyo-network/react-archivist 2.38.0-rc.1 → 2.38.0-rc.3

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 (42) hide show
  1. package/dist/cjs/components/Details.d.ts +2 -2
  2. package/dist/cjs/components/Details.d.ts.map +1 -1
  3. package/dist/cjs/components/Details.js +2 -3
  4. package/dist/cjs/components/Details.js.map +1 -1
  5. package/dist/cjs/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
  6. package/dist/cjs/contexts/Provider/CookieArchivistProvider.js +15 -4
  7. package/dist/cjs/contexts/Provider/CookieArchivistProvider.js.map +1 -1
  8. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
  9. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js +18 -3
  10. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
  11. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts +1 -1
  12. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
  13. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js +18 -3
  14. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
  15. package/dist/cjs/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
  16. package/dist/cjs/contexts/Provider/StorageArchivistProvider.js +18 -3
  17. package/dist/cjs/contexts/Provider/StorageArchivistProvider.js.map +1 -1
  18. package/dist/docs.json +622 -690
  19. package/dist/esm/components/Details.d.ts +2 -2
  20. package/dist/esm/components/Details.d.ts.map +1 -1
  21. package/dist/esm/components/Details.js +2 -2
  22. package/dist/esm/components/Details.js.map +1 -1
  23. package/dist/esm/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
  24. package/dist/esm/contexts/Provider/CookieArchivistProvider.js +15 -4
  25. package/dist/esm/contexts/Provider/CookieArchivistProvider.js.map +1 -1
  26. package/dist/esm/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
  27. package/dist/esm/contexts/Provider/MemoryArchivistProvider.js +18 -3
  28. package/dist/esm/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
  29. package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts +1 -1
  30. package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
  31. package/dist/esm/contexts/Provider/RemoteArchivistProvider.js +18 -3
  32. package/dist/esm/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
  33. package/dist/esm/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
  34. package/dist/esm/contexts/Provider/StorageArchivistProvider.js +18 -3
  35. package/dist/esm/contexts/Provider/StorageArchivistProvider.js.map +1 -1
  36. package/package.json +6 -6
  37. package/src/components/Details.stories.tsx +50 -14
  38. package/src/components/Details.tsx +9 -5
  39. package/src/contexts/Provider/CookieArchivistProvider.tsx +35 -23
  40. package/src/contexts/Provider/MemoryArchivistProvider.tsx +38 -22
  41. package/src/contexts/Provider/RemoteArchivistProvider.tsx +39 -23
  42. package/src/contexts/Provider/StorageArchivistProvider.tsx +38 -22
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { FlexBoxProps } from '@xylabs/react-flexbox';
3
- import { XyoArchivist } from '@xyo-network/archivist';
3
+ import { PayloadArchivist } from '@xyo-network/archivist';
4
4
  export interface ArchivistDetails extends FlexBoxProps {
5
- archivist?: XyoArchivist;
5
+ archivist?: PayloadArchivist;
6
6
  }
7
7
  export declare const ArchivistDetails: React.FC<ArchivistDetails>;
8
8
  //# sourceMappingURL=Details.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Details.d.ts","sourceRoot":"","sources":["../../../src/components/Details.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAoF,MAAM,wBAAwB,CAAA;AAMvI,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,CAAC,EAAE,YAAY,CAAA;CACzB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyCvD,CAAA"}
1
+ {"version":3,"file":"Details.d.ts","sourceRoot":"","sources":["../../../src/components/Details.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAoF,MAAM,wBAAwB,CAAA;AAM3I,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,CAAC,EAAE,gBAAgB,CAAA;CAC7B;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6CvD,CAAA"}
@@ -17,12 +17,12 @@ export const ArchivistDetails = ({ archivist: archivistProp, ...props }) => {
17
17
  useAsyncEffect(
18
18
  // eslint-disable-next-line react-hooks/exhaustive-deps
19
19
  async (mounted) => {
20
- const payloads = (await wrapper?.all()) ?? [];
20
+ const payloads = await wrapper?.all();
21
21
  if (mounted()) {
22
22
  setPayloads(payloads);
23
23
  }
24
24
  }, [wrapper, refresh]);
25
- return (_jsxs(FlexCol, { ...props, children: [_jsx(Typography, { children: `Payloads: ${payloads ? payloads.length : '-'}` }), _jsxs(ButtonGroup, { children: [_jsx(ButtonEx, { disabled: !archivist?.queryable(XyoArchivistCommitQuerySchema), onClick: () => wrapper?.commit(), children: "Commit" }), _jsx(ButtonEx, { disabled: archivist?.queryable(XyoArchivistClearQuerySchema), onClick: () => wrapper?.clear(), children: "Clear" }), _jsx(ButtonEx, { onClick: () => {
25
+ return (_jsxs(FlexCol, { ...props, children: [_jsx(Typography, { children: `Payloads: ${payloads ? payloads.length : '-'}` }), _jsxs(ButtonGroup, { children: [_jsx(ButtonEx, { disabled: payloads?.length === 0 || !archivist || !archivist?.queryable(XyoArchivistCommitQuerySchema), onClick: () => wrapper?.commit(), children: "Commit" }), _jsx(ButtonEx, { disabled: !archivist || archivist?.queryable(XyoArchivistClearQuerySchema), onClick: () => wrapper?.clear(), children: "Clear" }), _jsx(ButtonEx, { disabled: !archivist, onClick: () => {
26
26
  setRefresh(refresh + 1);
27
27
  }, children: "Refresh" })] })] }));
28
28
  };
@@ -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,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
+ {"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,EAAoB,4BAA4B,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE3I,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,MAAM,OAAO,EAAE,GAAG,EAAE,CAAA;QACrC,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,IACP,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,6BAA6B,CAAC,EACtG,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,uBAGvB,EACX,KAAC,QAAQ,IAAC,QAAQ,EAAE,CAAC,SAAS,IAAI,SAAS,EAAE,SAAS,CAAC,4BAA4B,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,sBAE1G,EACX,KAAC,QAAQ,IACP,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE;4BACZ,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;wBACzB,CAAC,wBAGQ,IACC,IACN,CACX,CAAA;AACH,CAAC,CAAA"}
@@ -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,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,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,CA8B1E,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,17 +1,23 @@
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';
3
4
  import { XyoModuleResolver } from '@xyo-network/module';
4
5
  import merge from 'lodash/merge';
6
+ import { useMemo, useState } from 'react';
5
7
  import { useArchivist } from '../use';
6
8
  import { ArchivistProvider } from './Provider';
7
9
  export const CookieArchivistProvider = ({ config, resolver, ...props }) => {
8
10
  const { archivist } = useArchivist();
9
- const wrapper = archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined;
10
- const activeResolver = resolver ?? wrapper ? new XyoModuleResolver() : undefined;
11
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist]);
12
+ const activeResolver = useMemo(() => (resolver ?? wrapper ? new XyoModuleResolver() : undefined), [resolver, wrapper]);
11
13
  if (archivist) {
12
14
  activeResolver?.add(new XyoArchivistWrapper({ module: archivist }));
13
15
  }
14
- return (_jsx(ArchivistProvider, { archivist: new XyoCookieArchivist({
16
+ const [activeArchivist, setActiveArchivist] = useState();
17
+ useAsyncEffect(
18
+ // eslint-disable-next-line react-hooks/exhaustive-deps
19
+ async (mounted) => {
20
+ const activeArchivist = await XyoCookieArchivist.create({
15
21
  config: merge({}, config, archivist
16
22
  ? {
17
23
  parents: {
@@ -22,6 +28,11 @@ export const CookieArchivistProvider = ({ config, resolver, ...props }) => {
22
28
  }
23
29
  : undefined),
24
30
  resolver: activeResolver,
25
- }), ...props }));
31
+ });
32
+ if (mounted()) {
33
+ setActiveArchivist(activeArchivist);
34
+ }
35
+ }, [activeResolver, archivist, config]);
36
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
26
37
  };
27
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;AAC1G,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,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,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACtF,MAAM,cAAc,GAAkC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/G,IAAI,SAAS,EAAE;QACb,cAAc,EAAE,GAAG,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;KACpE;IACD,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,kBAAkB,CAAC;YACrB,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,KAEA,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,kBAAkB,CAAC,MAAM,CAAC;YACtD,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,CAAA;QACF,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 +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,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,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,CA0B1E,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,13 +1,23 @@
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';
3
4
  import { XyoModuleResolver } from '@xyo-network/module';
4
5
  import merge from 'lodash/merge';
6
+ import { useMemo, useState } from 'react';
5
7
  import { useArchivist } from '../use';
6
8
  import { ArchivistProvider } from './Provider';
7
9
  export const MemoryArchivistProvider = ({ config, resolver, ...props }) => {
8
10
  const { archivist } = useArchivist();
9
- const activeResolver = resolver ?? new XyoModuleResolver().add(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined);
10
- return (_jsx(ArchivistProvider, { archivist: new XyoMemoryArchivist({
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 XyoMemoryArchivist.create({
11
21
  config: merge({}, config, archivist
12
22
  ? {
13
23
  parents: {
@@ -18,6 +28,11 @@ export const MemoryArchivistProvider = ({ config, resolver, ...props }) => {
18
28
  }
19
29
  : undefined),
20
30
  resolver: activeResolver,
21
- }), ...props }));
31
+ });
32
+ if (mounted()) {
33
+ setActiveArchivist(activeArchivist);
34
+ }
35
+ }, [activeResolver, archivist, config]);
36
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
22
37
  };
23
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;AAC1G,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,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,GAAG,QAAQ,IAAI,IAAI,iBAAiB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACtI,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,kBAAkB,CAAC;YACrB,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,KAEA,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,kBAAkB,CAAC,MAAM,CAAC;YACtD,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,CAAA;QACF,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"}
@@ -3,7 +3,7 @@ import { XyoRemoteArchivistConfig } from '@xyo-network/api';
3
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;
6
+ config?: XyoRemoteArchivistConfig;
7
7
  resolver?: XyoModuleResolver;
8
8
  }>;
9
9
  export declare const RemoteArchivistProvider: React.FC<RemoteArchivistProviderProps>;
@@ -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,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAMlE,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,CA0B1E,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,14 +1,24 @@
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';
4
5
  import { XyoModuleResolver } from '@xyo-network/module';
5
6
  import merge from 'lodash/merge';
7
+ import { useMemo, useState } from 'react';
6
8
  import { useArchivist } from '../use';
7
9
  import { ArchivistProvider } from './Provider';
8
10
  export const RemoteArchivistProvider = ({ config, resolver, ...props }) => {
9
11
  const { archivist } = useArchivist();
10
- const activeResolver = resolver ?? new XyoModuleResolver().add(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined);
11
- return (_jsx(ArchivistProvider, { archivist: new XyoRemoteArchivist({
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 XyoRemoteArchivist.create({
12
22
  config: merge({}, config, archivist
13
23
  ? {
14
24
  parents: {
@@ -19,6 +29,11 @@ export const RemoteArchivistProvider = ({ config, resolver, ...props }) => {
19
29
  }
20
30
  : undefined),
21
31
  resolver: activeResolver,
22
- }), ...props }));
32
+ });
33
+ if (mounted()) {
34
+ setActiveArchivist(activeArchivist);
35
+ }
36
+ }, [activeResolver, archivist, config]);
37
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
23
38
  };
24
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;AAC5D,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,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,GAAG,QAAQ,IAAI,IAAI,iBAAiB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACtI,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,kBAAkB,CAAC;YACrB,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,KAEA,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,kBAAkB,CAAC,MAAM,CAAC;YACtD,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,CAAA;QACF,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 +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,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;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CA2B5E,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"}
@@ -4,10 +4,20 @@ import { XyoModuleResolver } from '@xyo-network/module';
4
4
  import merge from 'lodash/merge';
5
5
  import { useArchivist } from '../use';
6
6
  import { ArchivistProvider } from './Provider';
7
+ import { useAsyncEffect } from '@xylabs/react-shared';
8
+ import { useMemo, useState } from 'react';
7
9
  export const StorageArchivistProvider = ({ config, resolver, ...props }) => {
8
10
  const { archivist } = useArchivist();
9
- const activeResolver = resolver ?? new XyoModuleResolver().add(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined);
10
- return (_jsx(ArchivistProvider, { archivist: new XyoStorageArchivist({
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({
11
21
  config: merge({}, config, archivist
12
22
  ? {
13
23
  parents: {
@@ -18,6 +28,11 @@ export const StorageArchivistProvider = ({ config, resolver, ...props }) => {
18
28
  }
19
29
  : undefined),
20
30
  resolver: activeResolver,
21
- }), ...props }));
31
+ }).start();
32
+ if (mounted()) {
33
+ setActiveArchivist(activeArchivist);
34
+ }
35
+ }, [activeResolver, archivist, config]);
36
+ return _jsx(ArchivistProvider, { archivist: activeArchivist, ...props });
22
37
  };
23
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;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,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,GAAG,QAAQ,IAAI,IAAI,iBAAiB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAEtI,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EACP,IAAI,mBAAmB,CAAC;YACtB,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,KAEA,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"}
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.38.0-rc.2",
17
- "@xyo-network/react-shared": "^2.38.0-rc.1",
16
+ "@xyo-network/module": "^2.38.0-rc.7",
17
+ "@xyo-network/react-shared": "^2.38.0-rc.3",
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.38.0-rc.2",
33
- "@xyo-network/archivist": "^2.38.0-rc.2",
34
- "@xyo-network/payload": "^2.38.0-rc.2"
32
+ "@xyo-network/api": "^2.38.0-rc.7",
33
+ "@xyo-network/archivist": "^2.38.0-rc.7",
34
+ "@xyo-network/payload": "^2.38.0-rc.7"
35
35
  },
36
36
  "browser": "dist/esm/index.js",
37
37
  "docs": "dist/docs.json",
@@ -75,6 +75,6 @@
75
75
  },
76
76
  "sideEffects": false,
77
77
  "types": "dist/esm/index.d.ts",
78
- "version": "2.38.0-rc.1",
78
+ "version": "2.38.0-rc.3",
79
79
  "stableVersion": "2.37.29"
80
80
  }
@@ -1,8 +1,10 @@
1
1
  import { ComponentMeta, ComponentStory } from '@storybook/react'
2
- import { forget } from '@xylabs/sdk-js'
3
- import { XyoMemoryArchivist } from '@xyo-network/archivist'
2
+ import { useAsyncEffect } from '@xylabs/react-shared'
3
+ import { PayloadArchivist } from '@xyo-network/archivist'
4
4
  import { useAppThemeDecorator } from '@xyo-network/react-storybook'
5
+ import { useState } from 'react'
5
6
 
7
+ import { MemoryArchivistProvider, useArchivist } from '../contexts'
6
8
  import { ArchivistDetails } from './Details'
7
9
 
8
10
  const StorybookEntry = {
@@ -16,23 +18,57 @@ const StorybookEntry = {
16
18
  title: 'archivist/Details',
17
19
  } as ComponentMeta<typeof ArchivistDetails>
18
20
 
19
- const Template: ComponentStory<typeof ArchivistDetails> = (args) => <ArchivistDetails {...args}></ArchivistDetails>
21
+ const TemplateInner: ComponentStory<typeof ArchivistDetails> = (args) => {
22
+ const { archivist } = useArchivist()
20
23
 
21
- const archivist = new XyoMemoryArchivist()
22
- const initArchivist = async () => {
23
- await archivist.insert?.([{ schema: 'network.xyo.test' }])
24
+ return <ArchivistDetails archivist={archivist} {...args}></ArchivistDetails>
24
25
  }
25
- forget(initArchivist())
26
26
 
27
- const Default = Template.bind({})
28
- Default.args = {}
29
- Default.decorators = [useAppThemeDecorator]
27
+ const TemplateInnerWithData: ComponentStory<typeof ArchivistDetails> = (args) => {
28
+ const { archivist } = useArchivist()
29
+ const [archivistWithData, setArchivistWithData] = useState<PayloadArchivist>()
30
30
 
31
- const WithData = Template.bind({})
32
- WithData.args = { archivist }
33
- WithData.decorators = [useAppThemeDecorator]
31
+ useAsyncEffect(
32
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33
+ async (mounted) => {
34
+ if (archivist) {
35
+ await archivist.insert([{ schema: 'netowrk.xyo.test' }])
36
+ if (mounted()) {
37
+ setArchivistWithData(archivist)
38
+ }
39
+ }
40
+ },
41
+ [archivist],
42
+ )
43
+
44
+ return <ArchivistDetails archivist={archivistWithData} {...args}></ArchivistDetails>
45
+ }
46
+
47
+ const TemplateWithNoData: ComponentStory<typeof ArchivistDetails> = (args) => (
48
+ <MemoryArchivistProvider>
49
+ <TemplateInner {...args}></TemplateInner>
50
+ </MemoryArchivistProvider>
51
+ )
52
+
53
+ const TemplateWithData: ComponentStory<typeof ArchivistDetails> = (args) => (
54
+ <MemoryArchivistProvider>
55
+ <TemplateInnerWithData {...args}></TemplateInnerWithData>
56
+ </MemoryArchivistProvider>
57
+ )
58
+
59
+ const WithNoArchivist = TemplateInner.bind({})
60
+ WithNoArchivist.args = {}
61
+ WithNoArchivist.decorators = [useAppThemeDecorator]
62
+
63
+ const WithNoData = TemplateWithNoData.bind({})
64
+ TemplateWithNoData.args = {}
65
+ TemplateWithNoData.decorators = [useAppThemeDecorator]
66
+
67
+ const WithData = TemplateWithData.bind({})
68
+ TemplateWithData.args = {}
69
+ TemplateWithData.decorators = [useAppThemeDecorator]
34
70
 
35
- export { Default, WithData }
71
+ export { WithData, WithNoArchivist, WithNoData }
36
72
 
37
73
  // eslint-disable-next-line import/no-default-export
38
74
  export default StorybookEntry
@@ -2,14 +2,14 @@ import { ButtonGroup, Typography } from '@mui/material'
2
2
  import { ButtonEx } from '@xylabs/react-button'
3
3
  import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
4
4
  import { useAsyncEffect } from '@xylabs/react-shared'
5
- import { XyoArchivist, XyoArchivistClearQuerySchema, XyoArchivistCommitQuerySchema, XyoArchivistWrapper } from '@xyo-network/archivist'
5
+ import { PayloadArchivist, XyoArchivistClearQuerySchema, XyoArchivistCommitQuerySchema, XyoArchivistWrapper } from '@xyo-network/archivist'
6
6
  import { XyoPayload } from '@xyo-network/payload'
7
7
  import { useEffect, useState } from 'react'
8
8
 
9
9
  import { useArchivist } from '../contexts'
10
10
 
11
11
  export interface ArchivistDetails extends FlexBoxProps {
12
- archivist?: XyoArchivist
12
+ archivist?: PayloadArchivist
13
13
  }
14
14
 
15
15
  export const ArchivistDetails: React.FC<ArchivistDetails> = ({ archivist: archivistProp, ...props }) => {
@@ -25,7 +25,7 @@ export const ArchivistDetails: React.FC<ArchivistDetails> = ({ archivist: archiv
25
25
  useAsyncEffect(
26
26
  // eslint-disable-next-line react-hooks/exhaustive-deps
27
27
  async (mounted) => {
28
- const payloads = (await wrapper?.all()) ?? []
28
+ const payloads = await wrapper?.all()
29
29
  if (mounted()) {
30
30
  setPayloads(payloads)
31
31
  }
@@ -37,13 +37,17 @@ export const ArchivistDetails: React.FC<ArchivistDetails> = ({ archivist: archiv
37
37
  <FlexCol {...props}>
38
38
  <Typography>{`Payloads: ${payloads ? payloads.length : '-'}`}</Typography>
39
39
  <ButtonGroup>
40
- <ButtonEx disabled={!archivist?.queryable(XyoArchivistCommitQuerySchema)} onClick={() => wrapper?.commit()}>
40
+ <ButtonEx
41
+ disabled={payloads?.length === 0 || !archivist || !archivist?.queryable(XyoArchivistCommitQuerySchema)}
42
+ onClick={() => wrapper?.commit()}
43
+ >
41
44
  Commit
42
45
  </ButtonEx>
43
- <ButtonEx disabled={archivist?.queryable(XyoArchivistClearQuerySchema)} onClick={() => wrapper?.clear()}>
46
+ <ButtonEx disabled={!archivist || archivist?.queryable(XyoArchivistClearQuerySchema)} onClick={() => wrapper?.clear()}>
44
47
  Clear
45
48
  </ButtonEx>
46
49
  <ButtonEx
50
+ disabled={!archivist}
47
51
  onClick={() => {
48
52
  setRefresh(refresh + 1)
49
53
  }}
@@ -1,7 +1,9 @@
1
+ import { useAsyncEffect } from '@xylabs/react-shared'
1
2
  import { XyoArchivistWrapper, XyoCookieArchivist, XyoCookieArchivistConfig } from '@xyo-network/archivist'
2
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'
@@ -13,32 +15,42 @@ export type CookieArchivistProviderProps = ContextExProviderProps<{
13
15
 
14
16
  export const CookieArchivistProvider: React.FC<CookieArchivistProviderProps> = ({ config, resolver, ...props }) => {
15
17
  const { archivist } = useArchivist()
16
- const wrapper = archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined
17
- const activeResolver: XyoModuleResolver | undefined = resolver ?? wrapper ? new XyoModuleResolver() : undefined
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
+ )
18
23
  if (archivist) {
19
24
  activeResolver?.add(new XyoArchivistWrapper({ module: archivist }))
20
25
  }
21
- return (
22
- <ArchivistProvider
23
- archivist={
24
- new XyoCookieArchivist({
25
- config: merge(
26
- {},
27
- config,
28
- archivist
29
- ? {
30
- parents: {
31
- commit: [archivist.address],
32
- read: [archivist.address],
33
- write: [archivist.address],
34
- },
35
- }
36
- : undefined,
37
- ),
38
- resolver: activeResolver,
39
- })
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 XyoCookieArchivist.create({
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
+ })
48
+ if (mounted()) {
49
+ setActiveArchivist(activeArchivist)
40
50
  }
41
- {...props}
42
- />
51
+ },
52
+ [activeResolver, archivist, config],
43
53
  )
54
+
55
+ return <ArchivistProvider archivist={activeArchivist} {...props} />
44
56
  }
@@ -1,7 +1,9 @@
1
+ import { useAsyncEffect } from '@xylabs/react-shared'
1
2
  import { XyoArchivistWrapper, XyoMemoryArchivist, XyoMemoryArchivistConfig } from '@xyo-network/archivist'
2
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'
@@ -13,28 +15,42 @@ export type MemoryArchivistProviderProps = ContextExProviderProps<{
13
15
 
14
16
  export const MemoryArchivistProvider: React.FC<MemoryArchivistProviderProps> = ({ config, resolver, ...props }) => {
15
17
  const { archivist } = useArchivist()
16
- const activeResolver = resolver ?? new XyoModuleResolver().add(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined)
17
- return (
18
- <ArchivistProvider
19
- archivist={
20
- new XyoMemoryArchivist({
21
- config: merge(
22
- {},
23
- config,
24
- archivist
25
- ? {
26
- parents: {
27
- commit: [archivist.address],
28
- read: [archivist.address],
29
- write: [archivist.address],
30
- },
31
- }
32
- : undefined,
33
- ),
34
- resolver: activeResolver,
35
- })
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 }))
25
+ }
26
+
27
+ const [activeArchivist, setActiveArchivist] = useState<XyoMemoryArchivist>()
28
+
29
+ useAsyncEffect(
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ async (mounted) => {
32
+ const activeArchivist = await XyoMemoryArchivist.create({
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
+ })
48
+ if (mounted()) {
49
+ setActiveArchivist(activeArchivist)
36
50
  }
37
- {...props}
38
- />
51
+ },
52
+ [activeResolver, archivist, config],
39
53
  )
54
+
55
+ return <ArchivistProvider archivist={activeArchivist} {...props} />
40
56
  }