@xyo-network/react-node 2.45.0-rc.18 → 2.45.0-rc.19
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/hooks/index.js +1 -9
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useMemoryNodeUpdates.js +1 -1
- package/dist/cjs/hooks/useMemoryNodeUpdates.js.map +1 -1
- package/dist/cjs/hooks/useModule.js +15 -3
- package/dist/cjs/hooks/useModule.js.map +1 -1
- package/dist/cjs/hooks/useModules.js +31 -6
- package/dist/cjs/hooks/useModules.js.map +1 -1
- package/dist/cjs/hooks/useNode.js +36 -4
- package/dist/cjs/hooks/useNode.js.map +1 -1
- package/dist/cjs/hooks/{useModuleAddresses.js → useNodeAttachedAddresses.js} +9 -9
- package/dist/cjs/hooks/useNodeAttachedAddresses.js.map +1 -0
- package/dist/docs.json +408 -1168
- package/dist/esm/hooks/index.js +1 -9
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useMemoryNodeUpdates.js +1 -1
- package/dist/esm/hooks/useMemoryNodeUpdates.js.map +1 -1
- package/dist/esm/hooks/useModule.js +15 -3
- package/dist/esm/hooks/useModule.js.map +1 -1
- package/dist/esm/hooks/useModules.js +31 -6
- package/dist/esm/hooks/useModules.js.map +1 -1
- package/dist/esm/hooks/useNode.js +37 -5
- package/dist/esm/hooks/useNode.js.map +1 -1
- package/dist/esm/hooks/useNodeAttachedAddresses.js +17 -0
- package/dist/esm/hooks/useNodeAttachedAddresses.js.map +1 -0
- package/dist/types/hooks/index.d.ts +1 -9
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/useModule.d.ts.map +1 -1
- package/dist/types/hooks/useModules.d.ts +5 -5
- package/dist/types/hooks/useModules.d.ts.map +1 -1
- package/dist/types/hooks/useNode.d.ts +3 -2
- package/dist/types/hooks/useNode.d.ts.map +1 -1
- package/dist/types/hooks/useNodeAttachedAddresses.d.ts +2 -0
- package/dist/types/hooks/useNodeAttachedAddresses.d.ts.map +1 -0
- package/package.json +6 -11
- package/src/hooks/index.ts +1 -9
- package/src/hooks/useMemoryNodeUpdates.tsx +1 -1
- package/src/hooks/useModule.tsx +16 -3
- package/src/hooks/useModules.ts +31 -9
- package/src/hooks/useNode.tsx +40 -8
- package/src/hooks/{useModuleAddresses.ts → useNodeAttachedAddresses.ts} +6 -6
- package/dist/cjs/hooks/useArchiveArchivists.js +0 -38
- package/dist/cjs/hooks/useArchiveArchivists.js.map +0 -1
- package/dist/cjs/hooks/useArchivistModule.js +0 -12
- package/dist/cjs/hooks/useArchivistModule.js.map +0 -1
- package/dist/cjs/hooks/useArchivistModules.js +0 -11
- package/dist/cjs/hooks/useArchivistModules.js.map +0 -1
- package/dist/cjs/hooks/useDivinerModule.js +0 -12
- package/dist/cjs/hooks/useDivinerModule.js.map +0 -1
- package/dist/cjs/hooks/useDivinerModules.js +0 -12
- package/dist/cjs/hooks/useDivinerModules.js.map +0 -1
- package/dist/cjs/hooks/useModuleAddresses.js.map +0 -1
- package/dist/cjs/hooks/useNodeQueryDiviner.js +0 -43
- package/dist/cjs/hooks/useNodeQueryDiviner.js.map +0 -1
- package/dist/cjs/hooks/useWitnessModule.js +0 -12
- package/dist/cjs/hooks/useWitnessModule.js.map +0 -1
- package/dist/cjs/hooks/useWitnessModules.js +0 -11
- package/dist/cjs/hooks/useWitnessModules.js.map +0 -1
- package/dist/esm/hooks/useArchiveArchivists.js +0 -33
- package/dist/esm/hooks/useArchiveArchivists.js.map +0 -1
- package/dist/esm/hooks/useArchivistModule.js +0 -8
- package/dist/esm/hooks/useArchivistModule.js.map +0 -1
- package/dist/esm/hooks/useArchivistModules.js +0 -7
- package/dist/esm/hooks/useArchivistModules.js.map +0 -1
- package/dist/esm/hooks/useDivinerModule.js +0 -8
- package/dist/esm/hooks/useDivinerModule.js.map +0 -1
- package/dist/esm/hooks/useDivinerModules.js +0 -8
- package/dist/esm/hooks/useDivinerModules.js.map +0 -1
- package/dist/esm/hooks/useModuleAddresses.js +0 -17
- package/dist/esm/hooks/useModuleAddresses.js.map +0 -1
- package/dist/esm/hooks/useNodeQueryDiviner.js +0 -37
- package/dist/esm/hooks/useNodeQueryDiviner.js.map +0 -1
- package/dist/esm/hooks/useWitnessModule.js +0 -8
- package/dist/esm/hooks/useWitnessModule.js.map +0 -1
- package/dist/esm/hooks/useWitnessModules.js +0 -7
- package/dist/esm/hooks/useWitnessModules.js.map +0 -1
- package/dist/types/hooks/useArchiveArchivists.d.ts +0 -9
- package/dist/types/hooks/useArchiveArchivists.d.ts.map +0 -1
- package/dist/types/hooks/useArchivistModule.d.ts +0 -4
- package/dist/types/hooks/useArchivistModule.d.ts.map +0 -1
- package/dist/types/hooks/useArchivistModules.d.ts +0 -3
- package/dist/types/hooks/useArchivistModules.d.ts.map +0 -1
- package/dist/types/hooks/useDivinerModule.d.ts +0 -4
- package/dist/types/hooks/useDivinerModule.d.ts.map +0 -1
- package/dist/types/hooks/useDivinerModules.d.ts +0 -3
- package/dist/types/hooks/useDivinerModules.d.ts.map +0 -1
- package/dist/types/hooks/useModuleAddresses.d.ts +0 -2
- package/dist/types/hooks/useModuleAddresses.d.ts.map +0 -1
- package/dist/types/hooks/useNodeQueryDiviner.d.ts +0 -6
- package/dist/types/hooks/useNodeQueryDiviner.d.ts.map +0 -1
- package/dist/types/hooks/useWitnessModule.d.ts +0 -4
- package/dist/types/hooks/useWitnessModule.d.ts.map +0 -1
- package/dist/types/hooks/useWitnessModules.d.ts +0 -3
- package/dist/types/hooks/useWitnessModules.d.ts.map +0 -1
- package/src/hooks/useArchiveArchivists.tsx +0 -49
- package/src/hooks/useArchivistModule.ts +0 -10
- package/src/hooks/useArchivistModules.ts +0 -8
- package/src/hooks/useDivinerModule.ts +0 -10
- package/src/hooks/useDivinerModules.ts +0 -9
- package/src/hooks/useNodeQueryDiviner.tsx +0 -54
- package/src/hooks/useWitnessModule.ts +0 -10
- package/src/hooks/useWitnessModules.ts +0 -8
package/dist/esm/hooks/index.js
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
export * from './useArchiveArchivists';
|
|
2
|
-
export * from './useArchivistModule';
|
|
3
|
-
export * from './useArchivistModules';
|
|
4
|
-
export * from './useDivinerModule';
|
|
5
|
-
export * from './useDivinerModules';
|
|
6
1
|
export * from './useMemoryNodeUpdates';
|
|
7
2
|
export * from './useModule';
|
|
8
|
-
export * from './useModuleAddresses';
|
|
9
3
|
export * from './useModules';
|
|
10
4
|
export * from './useNode';
|
|
11
|
-
export * from './
|
|
5
|
+
export * from './useNodeAttachedAddresses';
|
|
12
6
|
export * from './useProvidedNode';
|
|
13
|
-
export * from './useWitnessModule';
|
|
14
|
-
export * from './useWitnessModules';
|
|
15
7
|
export * from './useWrappedModule';
|
|
16
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
|
|
@@ -5,7 +5,7 @@ export const useMemoryNodeUpdates = (refreshAddresses) => {
|
|
|
5
5
|
const [module, setModule] = useState();
|
|
6
6
|
useEffect(() => {
|
|
7
7
|
if (node) {
|
|
8
|
-
const onFunc = node.on;
|
|
8
|
+
const onFunc = node.module.on;
|
|
9
9
|
onFunc('moduleAttached', (args) => {
|
|
10
10
|
if (refreshAddresses) {
|
|
11
11
|
if (refreshAddresses.some((address) => address === args?.module.address))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAA2B,EAAwB,EAAE;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,EAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"useMemoryNodeUpdates.js","sourceRoot":"","sources":["../../../src/hooks/useMemoryNodeUpdates.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAA2B,EAAwB,EAAE;IACxF,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAsC,CAAA;YACjE,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,gBAAgB,EAAE;oBACpB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;wBAAE,SAAS,CAAC,IAAI,CAAC,CAAA;iBAC1F;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,CAAA;iBAChB;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;IAE5B,OAAO;QACL,MAAM;KACP,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -5,23 +5,35 @@ export const useModule = (nameOrAddress) => {
|
|
|
5
5
|
const [node, nodeError] = useProvidedWrappedNode();
|
|
6
6
|
const [module, setModule] = useState();
|
|
7
7
|
const [error, setError] = useState();
|
|
8
|
+
const address = module?.address;
|
|
8
9
|
useAsyncEffect(
|
|
9
10
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10
11
|
async (mounted) => {
|
|
12
|
+
const detachHandler = (args) => {
|
|
13
|
+
const eventModule = args.module;
|
|
14
|
+
if (eventModule.address === address && mounted()) {
|
|
15
|
+
setModule(undefined);
|
|
16
|
+
setError(undefined);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
11
19
|
try {
|
|
12
20
|
if (nodeError) {
|
|
13
|
-
console.log(`Setting NodeError [${nodeError.message}]`);
|
|
14
21
|
setError(nodeError);
|
|
15
22
|
setModule(undefined);
|
|
16
23
|
}
|
|
17
24
|
else {
|
|
18
25
|
if (node) {
|
|
26
|
+
const emitter = node.module;
|
|
19
27
|
const module = nameOrAddress ? await node.resolve(nameOrAddress) : (await node.resolve()).pop();
|
|
20
28
|
if (mounted()) {
|
|
21
|
-
|
|
29
|
+
emitter.on('moduleDetached', detachHandler);
|
|
22
30
|
setModule(module);
|
|
23
31
|
setError(undefined);
|
|
24
32
|
}
|
|
33
|
+
return () => {
|
|
34
|
+
//remove the event handler on unmount
|
|
35
|
+
emitter.on('moduleDetached', detachHandler, true);
|
|
36
|
+
};
|
|
25
37
|
}
|
|
26
38
|
else {
|
|
27
39
|
console.log('Setting All to undefined');
|
|
@@ -38,7 +50,7 @@ export const useModule = (nameOrAddress) => {
|
|
|
38
50
|
setModule(undefined);
|
|
39
51
|
}
|
|
40
52
|
}
|
|
41
|
-
}, [nameOrAddress, node, nodeError]);
|
|
53
|
+
}, [nameOrAddress, node, nodeError, address]);
|
|
42
54
|
return [module, error];
|
|
43
55
|
};
|
|
44
56
|
//# sourceMappingURL=useModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAkC,aAAsB,EAA4C,EAAE;IAC7H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;
|
|
1
|
+
{"version":3,"file":"useModule.js","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAkC,aAAsB,EAA4C,EAAE;IAC7H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAA;IAC/B,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,aAAa,GAAG,CAAC,IAA6B,EAAE,EAAE;YACtD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAA;YAC/B,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,EAAE;gBAChD,SAAS,CAAC,SAAS,CAAC,CAAA;gBACpB,QAAQ,CAAC,SAAS,CAAC,CAAA;aACpB;QACH,CAAC,CAAA;QACD,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,OAAO,GAAG,IAAI,CAAC,MAAoC,CAAA;oBACzD,MAAM,MAAM,GAAwB,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAU,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAW,CAAC,CAAC,GAAG,EAAE,CAAA;oBACtI,IAAI,OAAO,EAAE,EAAE;wBACb,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;wBAC3C,SAAS,CAAC,MAAM,CAAC,CAAA;wBACjB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;oBACD,OAAO,GAAG,EAAE;wBACV,qCAAqC;wBACrC,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;oBACnD,CAAC,CAAA;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,SAAS,CAAC,SAAS,CAAC,CAAA;iBACrB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,SAAS,CAAC,SAAS,CAAC,CAAA;aACrB;SACF;IACH,CAAC,EACD,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAC1C,CAAA;IAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC,CAAA"}
|
|
@@ -2,16 +2,41 @@ import { useAsyncEffect } from '@xylabs/react-shared';
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { useProvidedWrappedNode } from './useProvidedNode';
|
|
4
4
|
export const useModules = (filter) => {
|
|
5
|
-
const [node] = useProvidedWrappedNode();
|
|
5
|
+
const [node, nodeError] = useProvidedWrappedNode();
|
|
6
6
|
const [modules, setModules] = useState();
|
|
7
|
+
const [error, setError] = useState();
|
|
7
8
|
useAsyncEffect(
|
|
8
9
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9
10
|
async (mounted) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
try {
|
|
12
|
+
if (nodeError) {
|
|
13
|
+
setError(nodeError);
|
|
14
|
+
setModules(undefined);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
if (node) {
|
|
18
|
+
const modules = await node.resolve(filter);
|
|
19
|
+
if (mounted()) {
|
|
20
|
+
setModules(modules);
|
|
21
|
+
setError(undefined);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.log('Setting All to undefined');
|
|
26
|
+
setError(undefined);
|
|
27
|
+
setModules(undefined);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
13
30
|
}
|
|
14
|
-
|
|
15
|
-
|
|
31
|
+
catch (ex) {
|
|
32
|
+
if (mounted()) {
|
|
33
|
+
const error = ex;
|
|
34
|
+
console.log(`Setting Error [${error.message}]`);
|
|
35
|
+
setError(error);
|
|
36
|
+
setModules(undefined);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}, [filter, node, nodeError]);
|
|
40
|
+
return [modules, error];
|
|
16
41
|
};
|
|
17
42
|
//# sourceMappingURL=useModules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"useModules.js","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAkC,MAAqB,EAA8C,EAAE;IAC/H,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,sBAAsB,EAAE,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI;YACF,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI,IAAI,EAAE;oBACR,MAAM,OAAO,GAA0B,MAAM,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,CAAA;oBAC1E,IAAI,OAAO,EAAE,EAAE;wBACb,UAAU,CAAC,OAAO,CAAC,CAAA;wBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;qBACpB;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;oBACvC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;iBACtB;aACF;SACF;QAAC,OAAO,EAAE,EAAE;YACX,IAAI,OAAO,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,EAAW,CAAA;gBACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBAC/C,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACf,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;SACF;IACH,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAC1B,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
|
|
@@ -1,18 +1,50 @@
|
|
|
1
|
+
import { NodeWrapper } from '@xyo-network/node';
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
1
3
|
import { useModule } from './useModule';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
import { useProvidedNode } from './useProvidedNode';
|
|
5
|
+
//AT: intentionally not exported
|
|
6
|
+
const useNodeModule = (nameOrAddress) => {
|
|
7
|
+
const [providedNode] = useProvidedNode();
|
|
5
8
|
const [node, nodeError] = useModule(nameOrAddress);
|
|
6
9
|
if (nameOrAddress) {
|
|
7
10
|
if (providedNode) {
|
|
8
11
|
return [node, nodeError];
|
|
9
12
|
}
|
|
10
13
|
else {
|
|
11
|
-
return [providedNode,
|
|
14
|
+
return [providedNode, undefined];
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
else {
|
|
15
|
-
return [providedNode,
|
|
18
|
+
return [providedNode, undefined];
|
|
16
19
|
}
|
|
17
20
|
};
|
|
21
|
+
export const useNode = (nameOrAddress, account) => {
|
|
22
|
+
const [node, nodeError] = useNodeModule();
|
|
23
|
+
const [wrapper, setWrapper] = useState();
|
|
24
|
+
const [error, setError] = useState();
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (node) {
|
|
27
|
+
if (nodeError) {
|
|
28
|
+
setError(nodeError);
|
|
29
|
+
setWrapper(undefined);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
try {
|
|
33
|
+
const wrapper = NodeWrapper.wrap(node, account);
|
|
34
|
+
setWrapper(wrapper);
|
|
35
|
+
setError(undefined);
|
|
36
|
+
}
|
|
37
|
+
catch (ex) {
|
|
38
|
+
setWrapper(undefined);
|
|
39
|
+
setError(ex);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
setWrapper(undefined);
|
|
45
|
+
setError(undefined);
|
|
46
|
+
}
|
|
47
|
+
}, [node, account, nodeError]);
|
|
48
|
+
return [wrapper, error];
|
|
49
|
+
};
|
|
18
50
|
//# sourceMappingURL=useNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useNode.js","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,gCAAgC;AAChC,MAAM,aAAa,GAAG,CAAC,aAAsB,EAA+C,EAAE;IAC5F,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;IAElD,IAAI,aAAa,EAAE;QACjB,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAkB,EAAE,SAAS,CAAC,CAAA;SACvC;aAAM;YACL,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;SACjC;KACF;SAAM;QACL,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;KACjC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,aAAsB,EAAE,OAAyB,EAAgD,EAAE;IACzH,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,aAAa,EAAE,CAAA;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAe,CAAA;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAA;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,IAAI,SAAS,EAAE;gBACb,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnB,UAAU,CAAC,SAAS,CAAC,CAAA;aACtB;iBAAM;gBACL,IAAI;oBACF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBAC/C,UAAU,CAAC,OAAO,CAAC,CAAA;oBACnB,QAAQ,CAAC,SAAS,CAAC,CAAA;iBACpB;gBAAC,OAAO,EAAE,EAAE;oBACX,UAAU,CAAC,SAAS,CAAC,CAAA;oBACrB,QAAQ,CAAC,EAAW,CAAC,CAAA;iBACtB;aACF;SACF;aAAM;YACL,UAAU,CAAC,SAAS,CAAC,CAAA;YACrB,QAAQ,CAAC,SAAS,CAAC,CAAA;SACpB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAE9B,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useAsyncEffect } from '@xylabs/react-shared';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useNode } from './useNode';
|
|
4
|
+
export const useNodeAttachedAddresses = () => {
|
|
5
|
+
const [node] = useNode();
|
|
6
|
+
const [addresses, setAddresses] = useState();
|
|
7
|
+
useAsyncEffect(
|
|
8
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9
|
+
async (mounted) => {
|
|
10
|
+
const attached = await node?.attached();
|
|
11
|
+
if (mounted()) {
|
|
12
|
+
setAddresses(attached);
|
|
13
|
+
}
|
|
14
|
+
}, [node]);
|
|
15
|
+
return [addresses, node?.registered()];
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useNodeAttachedAddresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNodeAttachedAddresses.js","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAA;IACxB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAY,CAAA;IAEtD,cAAc;IACZ,uDAAuD;IACvD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,QAAQ,EAAE,CAAA;QACvC,IAAI,OAAO,EAAE,EAAE;YACb,YAAY,CAAC,QAAQ,CAAC,CAAA;SACvB;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;AACxC,CAAC,CAAA"}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
export * from './useArchiveArchivists';
|
|
2
|
-
export * from './useArchivistModule';
|
|
3
|
-
export * from './useArchivistModules';
|
|
4
|
-
export * from './useDivinerModule';
|
|
5
|
-
export * from './useDivinerModules';
|
|
6
1
|
export * from './useMemoryNodeUpdates';
|
|
7
2
|
export * from './useModule';
|
|
8
|
-
export * from './useModuleAddresses';
|
|
9
3
|
export * from './useModules';
|
|
10
4
|
export * from './useNode';
|
|
11
|
-
export * from './
|
|
5
|
+
export * from './useNodeAttachedAddresses';
|
|
12
6
|
export * from './useProvidedNode';
|
|
13
|
-
export * from './useWitnessModule';
|
|
14
|
-
export * from './useWitnessModules';
|
|
15
7
|
export * from './useWrappedModule';
|
|
16
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;oBAAqD,MAAM,
|
|
1
|
+
{"version":3,"file":"useModule.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModule.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAMlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;oBAAqD,MAAM,6CAmDhF,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Module, ModuleFilter } from '@xyo-network/module';
|
|
2
|
-
export declare const useModules: <
|
|
1
|
+
import { Module, ModuleFilter } from '@xyo-network/module-model';
|
|
2
|
+
export declare const useModules: <TModule extends Module<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
3
3
|
name?: string | undefined;
|
|
4
4
|
security?: {
|
|
5
5
|
allowAnonymous?: boolean | undefined;
|
|
6
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
6
|
+
allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
7
7
|
disallowed?: Record<string, string[]> | undefined;
|
|
8
8
|
} | undefined;
|
|
9
9
|
storeQueries?: boolean | undefined;
|
|
@@ -13,11 +13,11 @@ export declare const useModules: <T extends Module<import("@xyo-network/payload-
|
|
|
13
13
|
name?: string | undefined;
|
|
14
14
|
security?: {
|
|
15
15
|
allowAnonymous?: boolean | undefined;
|
|
16
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
16
|
+
allowed?: Record<string, (string | import("@xyo-network/module-model").CosigningAddressSet)[]> | undefined;
|
|
17
17
|
disallowed?: Record<string, string[]> | undefined;
|
|
18
18
|
} | undefined;
|
|
19
19
|
storeQueries?: boolean | undefined;
|
|
20
20
|
} & {
|
|
21
21
|
schema: string;
|
|
22
|
-
}>>(filter?: ModuleFilter) =>
|
|
22
|
+
}>>(filter?: ModuleFilter) => [TModule[] | undefined, Error | undefined];
|
|
23
23
|
//# sourceMappingURL=useModules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useModules.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKhE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;aAA8C,YAAY,+CAsChF,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { AccountInstance } from '@xyo-network/account-model';
|
|
2
|
+
import { NodeWrapper } from '@xyo-network/node';
|
|
3
|
+
export declare const useNode: (nameOrAddress?: string, account?: AccountInstance) => [NodeWrapper | undefined, Error | undefined];
|
|
3
4
|
//# sourceMappingURL=useNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAsB3D,eAAO,MAAM,OAAO,mBAAoB,MAAM,YAAY,eAAe,KAAG,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA2BtH,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNodeAttachedAddresses.d.ts","sourceRoot":"","sources":["../../../src/hooks/useNodeAttachedAddresses.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,oDAgBpC,CAAA"}
|
package/package.json
CHANGED
|
@@ -13,16 +13,11 @@
|
|
|
13
13
|
"@mui/lab": "^5.0.0-alpha.121",
|
|
14
14
|
"@xylabs/react-flexbox": "^2.16.8",
|
|
15
15
|
"@xylabs/react-shared": "^2.16.8",
|
|
16
|
-
"@xyo-network/account": "^2.51.
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/
|
|
20
|
-
"@xyo-network/
|
|
21
|
-
"@xyo-network/module-model": "^2.51.2",
|
|
22
|
-
"@xyo-network/node": "^2.51.2",
|
|
23
|
-
"@xyo-network/payload-model": "^2.51.2",
|
|
24
|
-
"@xyo-network/react-shared": "^2.45.0-rc.18",
|
|
25
|
-
"@xyo-network/witness": "^2.51.2"
|
|
16
|
+
"@xyo-network/account-model": "^2.51.4",
|
|
17
|
+
"@xyo-network/module": "^2.51.4",
|
|
18
|
+
"@xyo-network/module-model": "^2.51.4",
|
|
19
|
+
"@xyo-network/node": "^2.51.4",
|
|
20
|
+
"@xyo-network/react-shared": "^2.45.0-rc.19"
|
|
26
21
|
},
|
|
27
22
|
"devDependencies": {
|
|
28
23
|
"@storybook/react": "^6.5.16",
|
|
@@ -83,6 +78,6 @@
|
|
|
83
78
|
},
|
|
84
79
|
"sideEffects": false,
|
|
85
80
|
"types": "dist/types/index.d.ts",
|
|
86
|
-
"version": "2.45.0-rc.
|
|
81
|
+
"version": "2.45.0-rc.19",
|
|
87
82
|
"stableVersion": "2.44.1"
|
|
88
83
|
}
|
package/src/hooks/index.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
export * from './useArchiveArchivists'
|
|
2
|
-
export * from './useArchivistModule'
|
|
3
|
-
export * from './useArchivistModules'
|
|
4
|
-
export * from './useDivinerModule'
|
|
5
|
-
export * from './useDivinerModules'
|
|
6
1
|
export * from './useMemoryNodeUpdates'
|
|
7
2
|
export * from './useModule'
|
|
8
|
-
export * from './useModuleAddresses'
|
|
9
3
|
export * from './useModules'
|
|
10
4
|
export * from './useNode'
|
|
11
|
-
export * from './
|
|
5
|
+
export * from './useNodeAttachedAddresses'
|
|
12
6
|
export * from './useProvidedNode'
|
|
13
|
-
export * from './useWitnessModule'
|
|
14
|
-
export * from './useWitnessModules'
|
|
15
7
|
export * from './useWrappedModule'
|
|
@@ -16,7 +16,7 @@ export const useMemoryNodeUpdates = (refreshAddresses?: string[]): UseMemoryNode
|
|
|
16
16
|
|
|
17
17
|
useEffect(() => {
|
|
18
18
|
if (node) {
|
|
19
|
-
const onFunc = node.on as ModuleAttachedEventEmitter['on']
|
|
19
|
+
const onFunc = node.module.on as ModuleAttachedEventEmitter['on']
|
|
20
20
|
onFunc('moduleAttached', (args) => {
|
|
21
21
|
if (refreshAddresses) {
|
|
22
22
|
if (refreshAddresses.some((address) => address === args?.module.address)) setModule(args)
|
package/src/hooks/useModule.tsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-shared'
|
|
2
2
|
import { Module } from '@xyo-network/module-model'
|
|
3
|
+
import { ModuleDetachedEventArgs, ModuleDetachedEventEmitter } from '@xyo-network/node'
|
|
3
4
|
import { useState } from 'react'
|
|
4
5
|
|
|
5
6
|
import { useProvidedWrappedNode } from './useProvidedNode'
|
|
@@ -8,22 +9,34 @@ export const useModule = <TModule extends Module = Module>(nameOrAddress?: strin
|
|
|
8
9
|
const [node, nodeError] = useProvidedWrappedNode()
|
|
9
10
|
const [module, setModule] = useState<TModule>()
|
|
10
11
|
const [error, setError] = useState<Error>()
|
|
12
|
+
const address = module?.address
|
|
11
13
|
useAsyncEffect(
|
|
12
14
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13
15
|
async (mounted) => {
|
|
16
|
+
const detachHandler = (args: ModuleDetachedEventArgs) => {
|
|
17
|
+
const eventModule = args.module
|
|
18
|
+
if (eventModule.address === address && mounted()) {
|
|
19
|
+
setModule(undefined)
|
|
20
|
+
setError(undefined)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
14
23
|
try {
|
|
15
24
|
if (nodeError) {
|
|
16
|
-
console.log(`Setting NodeError [${nodeError.message}]`)
|
|
17
25
|
setError(nodeError)
|
|
18
26
|
setModule(undefined)
|
|
19
27
|
} else {
|
|
20
28
|
if (node) {
|
|
29
|
+
const emitter = node.module as ModuleDetachedEventEmitter
|
|
21
30
|
const module: TModule | undefined = nameOrAddress ? await node.resolve<TModule>(nameOrAddress) : (await node.resolve<TModule>()).pop()
|
|
22
31
|
if (mounted()) {
|
|
23
|
-
|
|
32
|
+
emitter.on('moduleDetached', detachHandler)
|
|
24
33
|
setModule(module)
|
|
25
34
|
setError(undefined)
|
|
26
35
|
}
|
|
36
|
+
return () => {
|
|
37
|
+
//remove the event handler on unmount
|
|
38
|
+
emitter.on('moduleDetached', detachHandler, true)
|
|
39
|
+
}
|
|
27
40
|
} else {
|
|
28
41
|
console.log('Setting All to undefined')
|
|
29
42
|
setError(undefined)
|
|
@@ -39,7 +52,7 @@ export const useModule = <TModule extends Module = Module>(nameOrAddress?: strin
|
|
|
39
52
|
}
|
|
40
53
|
}
|
|
41
54
|
},
|
|
42
|
-
[nameOrAddress, node, nodeError],
|
|
55
|
+
[nameOrAddress, node, nodeError, address],
|
|
43
56
|
)
|
|
44
57
|
|
|
45
58
|
return [module, error]
|
package/src/hooks/useModules.ts
CHANGED
|
@@ -1,23 +1,45 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-shared'
|
|
2
|
-
import { Module, ModuleFilter } from '@xyo-network/module'
|
|
2
|
+
import { Module, ModuleFilter } from '@xyo-network/module-model'
|
|
3
3
|
import { useState } from 'react'
|
|
4
4
|
|
|
5
5
|
import { useProvidedWrappedNode } from './useProvidedNode'
|
|
6
6
|
|
|
7
|
-
export const useModules = <
|
|
8
|
-
const [node] = useProvidedWrappedNode()
|
|
9
|
-
const [modules, setModules] = useState<
|
|
7
|
+
export const useModules = <TModule extends Module = Module>(filter?: ModuleFilter): [TModule[] | undefined, Error | undefined] => {
|
|
8
|
+
const [node, nodeError] = useProvidedWrappedNode()
|
|
9
|
+
const [modules, setModules] = useState<TModule[]>()
|
|
10
|
+
const [error, setError] = useState<Error>()
|
|
10
11
|
|
|
11
12
|
useAsyncEffect(
|
|
12
13
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13
14
|
async (mounted) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
try {
|
|
16
|
+
if (nodeError) {
|
|
17
|
+
setError(nodeError)
|
|
18
|
+
setModules(undefined)
|
|
19
|
+
} else {
|
|
20
|
+
if (node) {
|
|
21
|
+
const modules: TModule[] | undefined = await node.resolve<TModule>(filter)
|
|
22
|
+
if (mounted()) {
|
|
23
|
+
setModules(modules)
|
|
24
|
+
setError(undefined)
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
console.log('Setting All to undefined')
|
|
28
|
+
setError(undefined)
|
|
29
|
+
setModules(undefined)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
} catch (ex) {
|
|
33
|
+
if (mounted()) {
|
|
34
|
+
const error = ex as Error
|
|
35
|
+
console.log(`Setting Error [${error.message}]`)
|
|
36
|
+
setError(error)
|
|
37
|
+
setModules(undefined)
|
|
38
|
+
}
|
|
17
39
|
}
|
|
18
40
|
},
|
|
19
|
-
[filter, node],
|
|
41
|
+
[filter, node, nodeError],
|
|
20
42
|
)
|
|
21
43
|
|
|
22
|
-
return modules
|
|
44
|
+
return [modules, error]
|
|
23
45
|
}
|
package/src/hooks/useNode.tsx
CHANGED
|
@@ -1,19 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AccountInstance } from '@xyo-network/account-model'
|
|
2
|
+
import { NodeModule, NodeWrapper } from '@xyo-network/node'
|
|
3
|
+
import { useEffect, useState } from 'react'
|
|
2
4
|
|
|
3
5
|
import { useModule } from './useModule'
|
|
4
|
-
import {
|
|
6
|
+
import { useProvidedNode } from './useProvidedNode'
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const [
|
|
8
|
+
//AT: intentionally not exported
|
|
9
|
+
const useNodeModule = (nameOrAddress?: string): [NodeModule | undefined, Error | undefined] => {
|
|
10
|
+
const [providedNode] = useProvidedNode()
|
|
11
|
+
const [node, nodeError] = useModule(nameOrAddress)
|
|
9
12
|
|
|
10
13
|
if (nameOrAddress) {
|
|
11
14
|
if (providedNode) {
|
|
12
|
-
return [node, nodeError]
|
|
15
|
+
return [node as NodeModule, nodeError]
|
|
13
16
|
} else {
|
|
14
|
-
return [providedNode,
|
|
17
|
+
return [providedNode, undefined]
|
|
15
18
|
}
|
|
16
19
|
} else {
|
|
17
|
-
return [providedNode,
|
|
20
|
+
return [providedNode, undefined]
|
|
18
21
|
}
|
|
19
22
|
}
|
|
23
|
+
|
|
24
|
+
export const useNode = (nameOrAddress?: string, account?: AccountInstance): [NodeWrapper | undefined, Error | undefined] => {
|
|
25
|
+
const [node, nodeError] = useNodeModule()
|
|
26
|
+
const [wrapper, setWrapper] = useState<NodeWrapper>()
|
|
27
|
+
const [error, setError] = useState<Error>()
|
|
28
|
+
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (node) {
|
|
31
|
+
if (nodeError) {
|
|
32
|
+
setError(nodeError)
|
|
33
|
+
setWrapper(undefined)
|
|
34
|
+
} else {
|
|
35
|
+
try {
|
|
36
|
+
const wrapper = NodeWrapper.wrap(node, account)
|
|
37
|
+
setWrapper(wrapper)
|
|
38
|
+
setError(undefined)
|
|
39
|
+
} catch (ex) {
|
|
40
|
+
setWrapper(undefined)
|
|
41
|
+
setError(ex as Error)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
setWrapper(undefined)
|
|
46
|
+
setError(undefined)
|
|
47
|
+
}
|
|
48
|
+
}, [node, account, nodeError])
|
|
49
|
+
|
|
50
|
+
return [wrapper, error]
|
|
51
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-shared'
|
|
2
2
|
import { useState } from 'react'
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { useNode } from './useNode'
|
|
5
5
|
|
|
6
|
-
export const
|
|
7
|
-
const [node] =
|
|
8
|
-
const [
|
|
6
|
+
export const useNodeAttachedAddresses = () => {
|
|
7
|
+
const [node] = useNode()
|
|
8
|
+
const [addresses, setAddresses] = useState<string[]>()
|
|
9
9
|
|
|
10
10
|
useAsyncEffect(
|
|
11
11
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12
12
|
async (mounted) => {
|
|
13
13
|
const attached = await node?.attached()
|
|
14
14
|
if (mounted()) {
|
|
15
|
-
|
|
15
|
+
setAddresses(attached)
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
[node],
|
|
19
19
|
)
|
|
20
20
|
|
|
21
|
-
return [
|
|
21
|
+
return [addresses, node?.registered()]
|
|
22
22
|
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useArchiveArchivists = exports.useArchiveArchivistsRaw = void 0;
|
|
4
|
-
const archivist_1 = require("@xyo-network/archivist");
|
|
5
|
-
const react_shared_1 = require("@xyo-network/react-shared");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const useMemoryNodeUpdates_1 = require("./useMemoryNodeUpdates");
|
|
8
|
-
const useProvidedNode_1 = require("./useProvidedNode");
|
|
9
|
-
const useArchiveArchivistsRaw = (archiveName, refresher) => {
|
|
10
|
-
const [node] = (0, useProvidedNode_1.useProvidedWrappedNode)();
|
|
11
|
-
const buildReq = (0, react_1.useCallback)((type) => (archiveName && node) || refresher
|
|
12
|
-
? node === null || node === void 0 ? void 0 : node.resolveWrapped(archivist_1.ArchivistWrapper, { name: [encodeURIComponent(`${archiveName}[${type}]`)] })
|
|
13
|
-
: undefined, [archiveName, node, refresher]);
|
|
14
|
-
const payloadArchivistReq = (0, react_1.useMemo)(() => buildReq('payload'), [buildReq]);
|
|
15
|
-
const boundWitnessArchivistReq = (0, react_1.useMemo)(() => buildReq('boundwitness'), [buildReq]);
|
|
16
|
-
const [archivePayloadWrapper] = (0, react_shared_1.usePromise)(payloadArchivistReq, [payloadArchivistReq]);
|
|
17
|
-
const [archiveBoundWitnessWrapper] = (0, react_shared_1.usePromise)(boundWitnessArchivistReq, [boundWitnessArchivistReq]);
|
|
18
|
-
const archivists = (0, react_1.useMemo)(() => {
|
|
19
|
-
if ((archiveBoundWitnessWrapper === null || archiveBoundWitnessWrapper === void 0 ? void 0 : archiveBoundWitnessWrapper[0]) && (archivePayloadWrapper === null || archivePayloadWrapper === void 0 ? void 0 : archivePayloadWrapper[0])) {
|
|
20
|
-
return {
|
|
21
|
-
archiveBoundWitnessWrapper: archiveBoundWitnessWrapper[0],
|
|
22
|
-
archivePayloadWrapper: archivePayloadWrapper[0],
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
}, [archiveBoundWitnessWrapper, archivePayloadWrapper]);
|
|
29
|
-
return archivists;
|
|
30
|
-
};
|
|
31
|
-
exports.useArchiveArchivistsRaw = useArchiveArchivistsRaw;
|
|
32
|
-
const useArchiveArchivists = (archiveName, refresher, refreshAddresses) => {
|
|
33
|
-
const { module } = (0, useMemoryNodeUpdates_1.useMemoryNodeUpdates)(refreshAddresses);
|
|
34
|
-
const archivists = (0, exports.useArchiveArchivistsRaw)(archiveName, refresher !== null && refresher !== void 0 ? refresher : module);
|
|
35
|
-
return archivists;
|
|
36
|
-
};
|
|
37
|
-
exports.useArchiveArchivists = useArchiveArchivists;
|
|
38
|
-
//# sourceMappingURL=useArchiveArchivists.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useArchiveArchivists.js","sourceRoot":"","sources":["../../../src/hooks/useArchiveArchivists.tsx"],"names":[],"mappings":";;;AAAA,sDAAyD;AACzD,4DAAsD;AACtD,iCAA4C;AAE5C,iEAA6D;AAC7D,uDAA0D;AAOnD,MAAM,uBAAuB,GAAG,CAAC,WAAoB,EAAE,SAAmB,EAAoC,EAAE;IACrH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,wCAAsB,GAAE,CAAA;IAEvC,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAC1B,CAAC,IAAgC,EAAE,EAAE,CACnC,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,SAAS;QAChC,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,CAAC,4BAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,GAAG,WAAW,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACnG,CAAC,CAAC,SAAS,EACf,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAC/B,CAAA;IAED,MAAM,mBAAmB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1E,MAAM,wBAAwB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEpF,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAA,yBAAU,EAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtF,MAAM,CAAC,0BAA0B,CAAC,GAAG,IAAA,yBAAU,EAAC,wBAAwB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAErG,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,IAAI,CAAA,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAG,CAAC,CAAC,MAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,CAAC,CAAC,CAAA,EAAE;YACjE,OAAO;gBACL,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CAAqB;gBAC7E,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAqB;aACpE,CAAA;SACF;aAAM;YACL,OAAM;SACP;IACH,CAAC,EAAE,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAEvD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AA7BY,QAAA,uBAAuB,2BA6BnC;AAEM,MAAM,oBAAoB,GAAG,CAAC,WAAoB,EAAE,SAAmB,EAAE,gBAA2B,EAAE,EAAE;IAC7G,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,2CAAoB,EAAC,gBAAgB,CAAC,CAAA;IACzD,MAAM,UAAU,GAAG,IAAA,+BAAuB,EAAC,WAAW,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,MAAM,CAAC,CAAA;IAE5E,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AALY,QAAA,oBAAoB,wBAKhC"}
|