@xyo-network/react-node 2.59.0-rc.1 → 2.59.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.
- package/dist/cjs/hooks/useModulesFromNode.js +17 -18
- package/dist/cjs/hooks/useModulesFromNode.js.map +1 -1
- package/dist/esm/hooks/useModulesFromNode.js +17 -18
- package/dist/esm/hooks/useModulesFromNode.js.map +1 -1
- package/dist/types/hooks/useModulesFromNode.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/hooks/useModulesFromNode.ts +18 -20
|
@@ -13,27 +13,26 @@ const useModulesFromNode = (filter, config) => {
|
|
|
13
13
|
const [providedNode] = (0, provided_1.useProvidedNode)();
|
|
14
14
|
const [configMemo, setConfigMemo] = (0, react_shared_1.useDataState)(config);
|
|
15
15
|
const [refreshed, refresh] = (0, react_module_1.useRefresh)();
|
|
16
|
+
const [resolvedModules, setResolvedModules] = (0, react_1.useState)();
|
|
16
17
|
setConfigMemo(config);
|
|
17
18
|
//we store this to prevent the need of a deep compare to prevent re-render
|
|
18
19
|
const modulesLength = (0, react_1.useRef)();
|
|
19
20
|
const eventUnsubscribe = [];
|
|
20
|
-
const [
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
21
|
+
const [, resolvedModulesError] = (0, react_promise_1.usePromise)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
var _a;
|
|
23
|
+
const _b = configMemo !== null && configMemo !== void 0 ? configMemo : {}, { logger } = _b, resolverConfig = tslib_1.__rest(_b, ["logger"]);
|
|
24
|
+
const activeNode = (_a = configMemo === null || configMemo === void 0 ? void 0 : configMemo.node) !== null && _a !== void 0 ? _a : providedNode;
|
|
25
|
+
if (activeNode) {
|
|
26
|
+
const allResolvedModules = (0, compact_1.default)((yield activeNode.resolve(filter, resolverConfig)).map((module) => ((0, module_model_1.isModuleInstance)(module) ? module : undefined)));
|
|
27
|
+
logger === null || logger === void 0 ? void 0 : logger.debug(`getModulesFromResolution:allResolvedModules [${allResolvedModules === null || allResolvedModules === void 0 ? void 0 : allResolvedModules.length}]`);
|
|
28
|
+
if ((allResolvedModules === null || allResolvedModules === void 0 ? void 0 : allResolvedModules.length) !== modulesLength.current) {
|
|
29
|
+
logger === null || logger === void 0 ? void 0 : logger.debug(`getModulesFromResolution-setting: [${allResolvedModules === null || allResolvedModules === void 0 ? void 0 : allResolvedModules.length}]`);
|
|
30
|
+
modulesLength.current = allResolvedModules === null || allResolvedModules === void 0 ? void 0 : allResolvedModules.length;
|
|
31
|
+
setResolvedModules(allResolvedModules);
|
|
32
|
+
return allResolvedModules === null || allResolvedModules === void 0 ? void 0 : allResolvedModules.length;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return yield getModulesFromResolution();
|
|
34
|
+
}
|
|
35
|
+
return modulesLength.current;
|
|
37
36
|
}), [providedNode, filter, configMemo, refreshed]);
|
|
38
37
|
(0, react_1.useEffect)(() => {
|
|
39
38
|
var _a;
|
|
@@ -45,12 +44,12 @@ const useModulesFromNode = (filter, config) => {
|
|
|
45
44
|
}
|
|
46
45
|
eventUnsubscribe.push(activeNode.on('moduleAttached', ({ module }) => {
|
|
47
46
|
var _a;
|
|
48
|
-
logger === null || logger === void 0 ? void 0 : logger.
|
|
47
|
+
logger === null || logger === void 0 ? void 0 : logger.debug(`moduleAttached: useModulesFromNode [${(_a = module.config.name) !== null && _a !== void 0 ? _a : module.address}]`);
|
|
49
48
|
refresh();
|
|
50
49
|
}));
|
|
51
50
|
eventUnsubscribe.push(activeNode.on('moduleDetached', ({ module }) => {
|
|
52
51
|
var _a;
|
|
53
|
-
logger === null || logger === void 0 ? void 0 : logger.
|
|
52
|
+
logger === null || logger === void 0 ? void 0 : logger.debug(`moduleDetached: useModulesFromNode [${(_a = module.config.name) !== null && _a !== void 0 ? _a : module.address}]`);
|
|
54
53
|
refresh();
|
|
55
54
|
}));
|
|
56
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":";;;;AAAA,yDAAkD;AAElD,4DAA0F;AAC1F,4DAAsD;AACtD,4DAAwD;AACxD,qEAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,32 +3,31 @@ import { isModuleInstance } from '@xyo-network/module-model';
|
|
|
3
3
|
import { useRefresh } from '@xyo-network/react-module';
|
|
4
4
|
import { useDataState } from '@xyo-network/react-shared';
|
|
5
5
|
import compact from 'lodash/compact';
|
|
6
|
-
import { useEffect, useRef } from 'react';
|
|
6
|
+
import { useEffect, useRef, useState } from 'react';
|
|
7
7
|
import { useProvidedNode } from './provided';
|
|
8
8
|
export const useModulesFromNode = (filter, config) => {
|
|
9
9
|
const [providedNode] = useProvidedNode();
|
|
10
10
|
const [configMemo, setConfigMemo] = useDataState(config);
|
|
11
11
|
const [refreshed, refresh] = useRefresh();
|
|
12
|
+
const [resolvedModules, setResolvedModules] = useState();
|
|
12
13
|
setConfigMemo(config);
|
|
13
14
|
//we store this to prevent the need of a deep compare to prevent re-render
|
|
14
15
|
const modulesLength = useRef();
|
|
15
16
|
const eventUnsubscribe = [];
|
|
16
|
-
const [
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
17
|
+
const [, resolvedModulesError] = usePromise(async () => {
|
|
18
|
+
const { logger, ...resolverConfig } = configMemo ?? {};
|
|
19
|
+
const activeNode = configMemo?.node ?? providedNode;
|
|
20
|
+
if (activeNode) {
|
|
21
|
+
const allResolvedModules = compact((await activeNode.resolve(filter, resolverConfig)).map((module) => (isModuleInstance(module) ? module : undefined)));
|
|
22
|
+
logger?.debug(`getModulesFromResolution:allResolvedModules [${allResolvedModules?.length}]`);
|
|
23
|
+
if (allResolvedModules?.length !== modulesLength.current) {
|
|
24
|
+
logger?.debug(`getModulesFromResolution-setting: [${allResolvedModules?.length}]`);
|
|
25
|
+
modulesLength.current = allResolvedModules?.length;
|
|
26
|
+
setResolvedModules(allResolvedModules);
|
|
27
|
+
return allResolvedModules?.length;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return await getModulesFromResolution();
|
|
29
|
+
}
|
|
30
|
+
return modulesLength.current;
|
|
32
31
|
}, [providedNode, filter, configMemo, refreshed]);
|
|
33
32
|
useEffect(() => {
|
|
34
33
|
const { logger, node } = configMemo ?? {};
|
|
@@ -38,11 +37,11 @@ export const useModulesFromNode = (filter, config) => {
|
|
|
38
37
|
eventUnsubscribe.pop()?.();
|
|
39
38
|
}
|
|
40
39
|
eventUnsubscribe.push(activeNode.on('moduleAttached', ({ module }) => {
|
|
41
|
-
logger?.
|
|
40
|
+
logger?.debug(`moduleAttached: useModulesFromNode [${module.config.name ?? module.address}]`);
|
|
42
41
|
refresh();
|
|
43
42
|
}));
|
|
44
43
|
eventUnsubscribe.push(activeNode.on('moduleDetached', ({ module }) => {
|
|
45
|
-
logger?.
|
|
44
|
+
logger?.debug(`moduleDetached: useModulesFromNode [${module.config.name ?? module.address}]`);
|
|
46
45
|
refresh();
|
|
47
46
|
}));
|
|
48
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAgC,MAAM,2BAA2B,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useModulesFromNode.js","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAO1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,eAAO,MAAM,kBAAkB,YACpB,YAAY,WACZ,oBAAoB,KAC5B,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"useModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useModulesFromNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAO1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,eAAO,MAAM,kBAAkB,YACpB,YAAY,WACZ,oBAAoB,KAC5B,CAAC,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA8DzD,CAAA"}
|
package/package.json
CHANGED
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"@xyo-network/module-model": "^2.67.0",
|
|
22
22
|
"@xyo-network/node": "^2.67.0",
|
|
23
23
|
"@xyo-network/node-model": "^2.67.0",
|
|
24
|
-
"@xyo-network/react-module": "~2.59.0-rc.
|
|
25
|
-
"@xyo-network/react-node-context": "~2.59.0-rc.
|
|
26
|
-
"@xyo-network/react-node-provider": "~2.59.0-rc.
|
|
27
|
-
"@xyo-network/react-shared": "~2.59.0-rc.
|
|
24
|
+
"@xyo-network/react-module": "~2.59.0-rc.2",
|
|
25
|
+
"@xyo-network/react-node-context": "~2.59.0-rc.2",
|
|
26
|
+
"@xyo-network/react-node-provider": "~2.59.0-rc.2",
|
|
27
|
+
"@xyo-network/react-shared": "~2.59.0-rc.2",
|
|
28
28
|
"lodash": "^4.17.21"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"@xylabs/ts-scripts-yarn3": "^2.19.0",
|
|
34
34
|
"@xylabs/tsconfig-react": "^2.19.0",
|
|
35
35
|
"@xyo-network/payload-model": "^2.67.0",
|
|
36
|
-
"@xyo-network/react-storybook": "~2.59.0-rc.
|
|
37
|
-
"@xyo-network/react-wallet": "~2.59.0-rc.
|
|
36
|
+
"@xyo-network/react-storybook": "~2.59.0-rc.2",
|
|
37
|
+
"@xyo-network/react-wallet": "~2.59.0-rc.2",
|
|
38
38
|
"typescript": "^5.1.6"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -89,6 +89,6 @@
|
|
|
89
89
|
},
|
|
90
90
|
"sideEffects": false,
|
|
91
91
|
"types": "dist/types/index.d.ts",
|
|
92
|
-
"version": "2.59.0-rc.
|
|
92
|
+
"version": "2.59.0-rc.2",
|
|
93
93
|
"stableVersion": "2.58.0"
|
|
94
94
|
}
|
|
@@ -4,7 +4,7 @@ import { isModuleInstance, ModuleFilter, ModuleInstance } from '@xyo-network/mod
|
|
|
4
4
|
import { useRefresh } from '@xyo-network/react-module'
|
|
5
5
|
import { useDataState } from '@xyo-network/react-shared'
|
|
6
6
|
import compact from 'lodash/compact'
|
|
7
|
-
import { useEffect, useRef } from 'react'
|
|
7
|
+
import { useEffect, useRef, useState } from 'react'
|
|
8
8
|
|
|
9
9
|
import { useProvidedNode } from './provided'
|
|
10
10
|
import { ModuleFromNodeConfig } from './useModuleFromNode'
|
|
@@ -16,6 +16,7 @@ export const useModulesFromNode = (
|
|
|
16
16
|
const [providedNode] = useProvidedNode()
|
|
17
17
|
const [configMemo, setConfigMemo] = useDataState(config)
|
|
18
18
|
const [refreshed, refresh] = useRefresh()
|
|
19
|
+
const [resolvedModules, setResolvedModules] = useState<ModuleInstance[]>()
|
|
19
20
|
|
|
20
21
|
setConfigMemo(config)
|
|
21
22
|
|
|
@@ -24,25 +25,22 @@ export const useModulesFromNode = (
|
|
|
24
25
|
|
|
25
26
|
const eventUnsubscribe: EventUnsubscribeFunction[] = []
|
|
26
27
|
|
|
27
|
-
const [
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
28
|
+
const [, resolvedModulesError] = usePromise<number | null | undefined>(async () => {
|
|
29
|
+
const { logger, ...resolverConfig } = configMemo ?? {}
|
|
30
|
+
const activeNode = configMemo?.node ?? providedNode
|
|
31
|
+
if (activeNode) {
|
|
32
|
+
const allResolvedModules = compact(
|
|
33
|
+
(await activeNode.resolve(filter, resolverConfig)).map((module) => (isModuleInstance(module) ? module : undefined)),
|
|
34
|
+
)
|
|
35
|
+
logger?.debug(`getModulesFromResolution:allResolvedModules [${allResolvedModules?.length}]`)
|
|
36
|
+
if (allResolvedModules?.length !== modulesLength.current) {
|
|
37
|
+
logger?.debug(`getModulesFromResolution-setting: [${allResolvedModules?.length}]`)
|
|
38
|
+
modulesLength.current = allResolvedModules?.length
|
|
39
|
+
setResolvedModules(allResolvedModules)
|
|
40
|
+
return allResolvedModules?.length
|
|
41
41
|
}
|
|
42
|
-
return undefined
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
return await getModulesFromResolution()
|
|
43
|
+
return modulesLength.current
|
|
46
44
|
}, [providedNode, filter, configMemo, refreshed])
|
|
47
45
|
|
|
48
46
|
useEffect(() => {
|
|
@@ -54,13 +52,13 @@ export const useModulesFromNode = (
|
|
|
54
52
|
}
|
|
55
53
|
eventUnsubscribe.push(
|
|
56
54
|
activeNode.on('moduleAttached', ({ module }) => {
|
|
57
|
-
logger?.
|
|
55
|
+
logger?.debug(`moduleAttached: useModulesFromNode [${module.config.name ?? module.address}]`)
|
|
58
56
|
refresh()
|
|
59
57
|
}),
|
|
60
58
|
)
|
|
61
59
|
eventUnsubscribe.push(
|
|
62
60
|
activeNode.on('moduleDetached', ({ module }) => {
|
|
63
|
-
logger?.
|
|
61
|
+
logger?.debug(`moduleDetached: useModulesFromNode [${module.config.name ?? module.address}]`)
|
|
64
62
|
refresh()
|
|
65
63
|
}),
|
|
66
64
|
)
|