@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.
- package/dist/cjs/components/Details.d.ts +2 -2
- package/dist/cjs/components/Details.d.ts.map +1 -1
- package/dist/cjs/components/Details.js +2 -3
- package/dist/cjs/components/Details.js.map +1 -1
- package/dist/cjs/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
- package/dist/cjs/contexts/Provider/CookieArchivistProvider.js +15 -4
- package/dist/cjs/contexts/Provider/CookieArchivistProvider.js.map +1 -1
- package/dist/cjs/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
- package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js +18 -3
- package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
- package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts +1 -1
- package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
- package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js +18 -3
- package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
- package/dist/cjs/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
- package/dist/cjs/contexts/Provider/StorageArchivistProvider.js +18 -3
- package/dist/cjs/contexts/Provider/StorageArchivistProvider.js.map +1 -1
- package/dist/docs.json +622 -690
- package/dist/esm/components/Details.d.ts +2 -2
- package/dist/esm/components/Details.d.ts.map +1 -1
- package/dist/esm/components/Details.js +2 -2
- package/dist/esm/components/Details.js.map +1 -1
- package/dist/esm/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
- package/dist/esm/contexts/Provider/CookieArchivistProvider.js +15 -4
- package/dist/esm/contexts/Provider/CookieArchivistProvider.js.map +1 -1
- package/dist/esm/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
- package/dist/esm/contexts/Provider/MemoryArchivistProvider.js +18 -3
- package/dist/esm/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
- package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts +1 -1
- package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
- package/dist/esm/contexts/Provider/RemoteArchivistProvider.js +18 -3
- package/dist/esm/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
- package/dist/esm/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
- package/dist/esm/contexts/Provider/StorageArchivistProvider.js +18 -3
- package/dist/esm/contexts/Provider/StorageArchivistProvider.js.map +1 -1
- package/package.json +6 -6
- package/src/components/Details.stories.tsx +50 -14
- package/src/components/Details.tsx +9 -5
- package/src/contexts/Provider/CookieArchivistProvider.tsx +35 -23
- package/src/contexts/Provider/MemoryArchivistProvider.tsx +38 -22
- package/src/contexts/Provider/RemoteArchivistProvider.tsx +39 -23
- 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 {
|
|
3
|
+
import { PayloadArchivist } from '@xyo-network/archivist';
|
|
4
4
|
export interface ArchivistDetails extends FlexBoxProps {
|
|
5
|
-
archivist?:
|
|
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,
|
|
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 =
|
|
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,
|
|
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":";
|
|
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
|
-
|
|
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
|
-
})
|
|
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;
|
|
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":";
|
|
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
|
|
10
|
-
|
|
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
|
-
})
|
|
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;
|
|
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
|
|
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":";
|
|
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
|
|
11
|
-
|
|
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
|
-
})
|
|
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;
|
|
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;
|
|
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
|
|
10
|
-
|
|
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
|
-
})
|
|
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,
|
|
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.
|
|
17
|
-
"@xyo-network/react-shared": "^2.38.0-rc.
|
|
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.
|
|
33
|
-
"@xyo-network/archivist": "^2.38.0-rc.
|
|
34
|
-
"@xyo-network/payload": "^2.38.0-rc.
|
|
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.
|
|
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 {
|
|
3
|
-
import {
|
|
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
|
|
21
|
+
const TemplateInner: ComponentStory<typeof ArchivistDetails> = (args) => {
|
|
22
|
+
const { archivist } = useArchivist()
|
|
20
23
|
|
|
21
|
-
|
|
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
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const TemplateInnerWithData: ComponentStory<typeof ArchivistDetails> = (args) => {
|
|
28
|
+
const { archivist } = useArchivist()
|
|
29
|
+
const [archivistWithData, setArchivistWithData] = useState<PayloadArchivist>()
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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 {
|
|
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 {
|
|
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?:
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
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
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
38
|
-
|
|
51
|
+
},
|
|
52
|
+
[activeResolver, archivist, config],
|
|
39
53
|
)
|
|
54
|
+
|
|
55
|
+
return <ArchivistProvider archivist={activeArchivist} {...props} />
|
|
40
56
|
}
|