@xyo-network/react-archivist 2.38.0-rc.1 → 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 (32) hide show
  1. package/dist/cjs/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
  2. package/dist/cjs/contexts/Provider/CookieArchivistProvider.js +15 -4
  3. package/dist/cjs/contexts/Provider/CookieArchivistProvider.js.map +1 -1
  4. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
  5. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js +18 -3
  6. package/dist/cjs/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
  7. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts +1 -1
  8. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
  9. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js +18 -3
  10. package/dist/cjs/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
  11. package/dist/cjs/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
  12. package/dist/cjs/contexts/Provider/StorageArchivistProvider.js +18 -3
  13. package/dist/cjs/contexts/Provider/StorageArchivistProvider.js.map +1 -1
  14. package/dist/docs.json +64 -62
  15. package/dist/esm/contexts/Provider/CookieArchivistProvider.d.ts.map +1 -1
  16. package/dist/esm/contexts/Provider/CookieArchivistProvider.js +15 -4
  17. package/dist/esm/contexts/Provider/CookieArchivistProvider.js.map +1 -1
  18. package/dist/esm/contexts/Provider/MemoryArchivistProvider.d.ts.map +1 -1
  19. package/dist/esm/contexts/Provider/MemoryArchivistProvider.js +18 -3
  20. package/dist/esm/contexts/Provider/MemoryArchivistProvider.js.map +1 -1
  21. package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts +1 -1
  22. package/dist/esm/contexts/Provider/RemoteArchivistProvider.d.ts.map +1 -1
  23. package/dist/esm/contexts/Provider/RemoteArchivistProvider.js +18 -3
  24. package/dist/esm/contexts/Provider/RemoteArchivistProvider.js.map +1 -1
  25. package/dist/esm/contexts/Provider/StorageArchivistProvider.d.ts.map +1 -1
  26. package/dist/esm/contexts/Provider/StorageArchivistProvider.js +18 -3
  27. package/dist/esm/contexts/Provider/StorageArchivistProvider.js.map +1 -1
  28. package/package.json +6 -6
  29. package/src/contexts/Provider/CookieArchivistProvider.tsx +35 -23
  30. package/src/contexts/Provider/MemoryArchivistProvider.tsx +38 -22
  31. package/src/contexts/Provider/RemoteArchivistProvider.tsx +39 -23
  32. package/src/contexts/Provider/StorageArchivistProvider.tsx +38 -22
@@ -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.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.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.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,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.2",
79
79
  "stableVersion": "2.37.29"
80
80
  }
@@ -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 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)
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 new XyoMemoryArchivist({
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)
36
50
  }
37
- {...props}
38
- />
51
+ },
52
+ [activeResolver, archivist, config],
39
53
  )
54
+
55
+ return <ArchivistProvider archivist={activeArchivist} {...props} />
40
56
  }
@@ -1,41 +1,57 @@
1
+ import { useAsyncEffect } from '@xylabs/react-shared'
1
2
  import { XyoRemoteArchivist, XyoRemoteArchivistConfig } from '@xyo-network/api'
2
3
  import { XyoArchivistWrapper } from '@xyo-network/archivist'
3
4
  import { XyoModuleResolver } from '@xyo-network/module'
4
5
  import { ContextExProviderProps } from '@xyo-network/react-shared'
5
6
  import merge from 'lodash/merge'
7
+ import { useMemo, useState } from 'react'
6
8
 
7
9
  import { useArchivist } from '../use'
8
10
  import { ArchivistProvider } from './Provider'
9
11
 
10
12
  export type RemoteArchivistProviderProps = ContextExProviderProps<{
11
- config: XyoRemoteArchivistConfig
13
+ config?: XyoRemoteArchivistConfig
12
14
  resolver?: XyoModuleResolver
13
15
  }>
14
16
 
15
17
  export const RemoteArchivistProvider: React.FC<RemoteArchivistProviderProps> = ({ config, resolver, ...props }) => {
16
18
  const { archivist } = useArchivist()
17
- const activeResolver = resolver ?? new XyoModuleResolver().add(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined)
18
- return (
19
- <ArchivistProvider
20
- archivist={
21
- new XyoRemoteArchivist({
22
- config: merge(
23
- {},
24
- config,
25
- archivist
26
- ? {
27
- parents: {
28
- commit: [archivist.address],
29
- read: [archivist.address],
30
- write: [archivist.address],
31
- },
32
- }
33
- : undefined,
34
- ),
35
- resolver: activeResolver,
36
- })
19
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist])
20
+ const activeResolver: XyoModuleResolver | undefined = useMemo(
21
+ () => (resolver ?? wrapper ? new XyoModuleResolver() : undefined),
22
+ [resolver, wrapper],
23
+ )
24
+ if (archivist) {
25
+ activeResolver?.add(new XyoArchivistWrapper({ module: archivist }))
26
+ }
27
+
28
+ const [activeArchivist, setActiveArchivist] = useState<XyoRemoteArchivist>()
29
+
30
+ useAsyncEffect(
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ async (mounted) => {
33
+ const activeArchivist = await new XyoRemoteArchivist({
34
+ config: merge(
35
+ {},
36
+ config,
37
+ archivist
38
+ ? {
39
+ parents: {
40
+ commit: [archivist.address],
41
+ read: [archivist.address],
42
+ write: [archivist.address],
43
+ },
44
+ }
45
+ : undefined,
46
+ ),
47
+ resolver: activeResolver,
48
+ }).start()
49
+ if (mounted()) {
50
+ setActiveArchivist(activeArchivist)
37
51
  }
38
- {...props}
39
- />
52
+ },
53
+ [activeResolver, archivist, config],
40
54
  )
55
+
56
+ return <ArchivistProvider archivist={activeArchivist} {...props} />
41
57
  }
@@ -11,31 +11,47 @@ export type StorageArchivistProviderProps = ContextExProviderProps<{
11
11
  resolver?: XyoModuleResolver
12
12
  }>
13
13
 
14
+ import { useAsyncEffect } from '@xylabs/react-shared'
15
+ import { useMemo, useState } from 'react'
16
+
14
17
  export const StorageArchivistProvider: React.FC<StorageArchivistProviderProps> = ({ config, resolver, ...props }) => {
15
18
  const { archivist } = useArchivist()
16
- const activeResolver = resolver ?? new XyoModuleResolver().add(archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined)
19
+ const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper({ module: archivist }) : undefined), [archivist])
20
+ const activeResolver: XyoModuleResolver | undefined = useMemo(
21
+ () => (resolver ?? wrapper ? new XyoModuleResolver() : undefined),
22
+ [resolver, wrapper],
23
+ )
24
+ if (archivist) {
25
+ activeResolver?.add(new XyoArchivistWrapper({ module: archivist }))
26
+ }
17
27
 
18
- return (
19
- <ArchivistProvider
20
- archivist={
21
- new XyoStorageArchivist({
22
- config: merge(
23
- {},
24
- config,
25
- archivist
26
- ? {
27
- parents: {
28
- commit: [archivist.address],
29
- read: [archivist.address],
30
- write: [archivist.address],
31
- },
32
- }
33
- : undefined,
34
- ),
35
- resolver: activeResolver,
36
- })
28
+ const [activeArchivist, setActiveArchivist] = useState<XyoStorageArchivist>()
29
+
30
+ useAsyncEffect(
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ async (mounted) => {
33
+ const activeArchivist = await new XyoStorageArchivist({
34
+ config: merge(
35
+ {},
36
+ config,
37
+ archivist
38
+ ? {
39
+ parents: {
40
+ commit: [archivist.address],
41
+ read: [archivist.address],
42
+ write: [archivist.address],
43
+ },
44
+ }
45
+ : undefined,
46
+ ),
47
+ resolver: activeResolver,
48
+ }).start()
49
+ if (mounted()) {
50
+ setActiveArchivist(activeArchivist)
37
51
  }
38
- {...props}
39
- />
52
+ },
53
+ [activeResolver, archivist, config],
40
54
  )
55
+
56
+ return <ArchivistProvider archivist={activeArchivist} {...props} />
41
57
  }