@xyo-network/react-node 7.4.2 → 7.5.1
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/browser/components/Node.stories.d.ts +2 -2
- package/dist/browser/components/Node.stories.d.ts.map +1 -1
- package/dist/browser/components/NodeDrawer.stories.d.ts +1 -1
- package/dist/browser/components/NodeDrawer.stories.d.ts.map +1 -1
- package/dist/browser/components/NodeModulesBox.d.ts.map +1 -1
- package/dist/browser/components/TestModule.d.ts +5 -3
- package/dist/browser/components/TestModule.d.ts.map +1 -1
- package/dist/browser/components/render/RenderModule.d.ts +2 -2
- package/dist/browser/components/render/RenderModule.d.ts.map +1 -1
- package/dist/browser/hooks/ModuleFromNodeConfig.d.ts +1 -1
- package/dist/browser/hooks/WeakModuleFromNodeConfig.d.ts +1 -1
- package/dist/browser/hooks/getModuleFilterOptions.d.ts +1 -1
- package/dist/browser/hooks/getWeakModuleFilterOptions.d.ts +1 -1
- package/dist/browser/hooks/useWeakModulesFromNode.d.ts.map +1 -1
- package/dist/browser/index.mjs +282 -155
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +34 -34
- package/src/components/NodeModulesBox.tsx +1 -1
- package/src/components/TestModule.ts +5 -3
- package/src/components/render/RenderModule.tsx +2 -2
- package/src/hooks/ModuleFromNodeConfig.ts +1 -1
- package/src/hooks/WeakModuleFromNodeConfig.ts +1 -1
- package/src/hooks/useModuleFromNode.ts +1 -1
- package/src/hooks/useModulesFromNode.ts +1 -1
- package/src/hooks/useWeakModuleFromNode.ts +1 -1
- package/src/hooks/useWeakModulesFromNode.ts +1 -2
- package/src/hooks/useWeakNode.ts +1 -1
- package/src/hooks/useWeakNodesFromNode.tsx +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta } from '@storybook/react-vite';
|
|
2
2
|
declare const _default: Meta;
|
|
3
3
|
export default _default;
|
|
4
|
-
declare const Default: import("
|
|
5
|
-
declare const WithModules: import("
|
|
4
|
+
declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, {}>;
|
|
5
|
+
declare const WithModules: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, {}>;
|
|
6
6
|
export { Default, WithModules };
|
|
7
7
|
//# sourceMappingURL=Node.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Node.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;wBA2BsB,IAAI;AAAxD,wBAAwD;AA8BxD,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Node.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Node.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;wBA2BsB,IAAI;AAAxD,wBAAwD;AA8BxD,QAAA,MAAM,OAAO,iGAAoB,CAAA;AAGjC,QAAA,MAAM,WAAW,iGAAoB,CAAA;AAIrC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta } from '@storybook/react-vite';
|
|
2
2
|
import { NodeDrawer } from './NodeDrawer.tsx';
|
|
3
3
|
declare const StorybookEntry: Meta<typeof NodeDrawer>;
|
|
4
|
-
declare const Default: import("
|
|
4
|
+
declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("./NodeDrawer.tsx").NodeDrawerProps>;
|
|
5
5
|
export { Default };
|
|
6
6
|
export default StorybookEntry;
|
|
7
7
|
//# sourceMappingURL=NodeDrawer.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeDrawer.stories.d.ts","sourceRoot":"","sources":["../../../src/components/NodeDrawer.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;AAQ9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAU7C,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,UAAU,CAAC,CAAA;AAc5B,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeDrawer.stories.d.ts","sourceRoot":"","sources":["../../../src/components/NodeDrawer.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACC,IAAI,EAChB,MAAM,uBAAuB,CAAA;AAQ9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAU7C,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,UAAU,CAAC,CAAA;AAc5B,QAAA,MAAM,OAAO,yIAAoB,CAAA;AAGjC,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,eAAe,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeModulesBox.d.ts","sourceRoot":"","sources":["../../../src/components/NodeModulesBox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeModulesBox.d.ts","sourceRoot":"","sources":["../../../src/components/NodeModulesBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;CAC7B;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAUhE,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract';
|
|
2
2
|
import type { ModuleConfig, ModuleParams } from '@xyo-network/module-model';
|
|
3
|
-
import type
|
|
4
|
-
export
|
|
5
|
-
|
|
3
|
+
import { type Query, type Schema } from '@xyo-network/payload-model';
|
|
4
|
+
export declare const TestModuleConfigSchema: "network.xyo.test.module" & {
|
|
5
|
+
readonly __schema: true;
|
|
6
|
+
};
|
|
7
|
+
export type TestModuleConfigSchema = typeof TestModuleConfigSchema;
|
|
6
8
|
export declare class TestModule extends AbstractModuleInstance<ModuleParams<ModuleConfig<{
|
|
7
9
|
schema: TestModuleConfigSchema;
|
|
8
10
|
}>>> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestModule.d.ts","sourceRoot":"","sources":["../../../src/components/TestModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"TestModule.d.ts","sourceRoot":"","sources":["../../../src/components/TestModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EACK,KAAK,KAAK,EAAE,KAAK,MAAM,EAClC,MAAM,4BAA4B,CAAA;AAEnC,eAAO,MAAM,sBAAsB;;CAA4C,CAAA;AAC/E,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,qBAAa,UAAW,SAAQ,sBAAsB,CAAC,YAAY,CAAC,YAAY,CAAC;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAAC,CAAC;IACpH,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAmD;IACnG,gBAAyB,mBAAmB,EAAE,MAAM,CAAyB;IAC7E,IAAI,kBAAkB,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAExD;CACF;AAED,eAAO,MAAM,IAAI,qBAEhB,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ModuleInstance } from '@xyo-network/module-model';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RefObject } from 'react';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
interface RenderModuleProps {
|
|
5
|
-
idRef:
|
|
5
|
+
idRef: RefObject<{
|
|
6
6
|
idIncrementor: number;
|
|
7
7
|
ids: string[];
|
|
8
8
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderModule.d.ts","sourceRoot":"","sources":["../../../../src/components/render/RenderModule.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderModule.d.ts","sourceRoot":"","sources":["../../../../src/components/render/RenderModule.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,UAAU,iBAAiB;IACzB,KAAK,EAAE,SAAS,CAAC;QACf,aAAa,EAAE,MAAM,CAAA;QACrB,GAAG,EAAE,MAAM,EAAE,CAAA;KACd,CAAC,CAAA;IACF,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CAC7B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4CpD,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Logger } from '@xylabs/
|
|
1
|
+
import type { Logger } from '@xylabs/sdk-js';
|
|
2
2
|
import type { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model';
|
|
3
3
|
import type { NodeInstance } from '@xyo-network/node-model';
|
|
4
4
|
export type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Logger } from '@xylabs/
|
|
1
|
+
import type { Logger } from '@xylabs/sdk-js';
|
|
2
2
|
import type { ModuleFilterOptions } from '@xyo-network/module-model';
|
|
3
3
|
import type { NodeInstance } from '@xyo-network/node-model';
|
|
4
4
|
export type WeakModuleFromNodeConfig = ModuleFilterOptions & {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts';
|
|
2
2
|
export declare const getModuleFilterOptions: (config?: ModuleFromNodeConfig) => {
|
|
3
3
|
direction: import("@xyo-network/module-model").Direction | undefined;
|
|
4
|
-
identity: import("@xylabs/object").TypeCheck<import("@xyo-network/module-model").ModuleInstance<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/module-model").ModuleConfig>>, import("@xyo-network/module-model").ModuleEventData<object>>> | undefined;
|
|
4
|
+
identity: import("@xylabs/object-model").TypeCheck<import("@xyo-network/module-model").ModuleInstance<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/module-model").ModuleConfig>>, import("@xyo-network/module-model").ModuleEventData<object>>> | undefined;
|
|
5
5
|
maxDepth: number | undefined;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=getModuleFilterOptions.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts';
|
|
2
2
|
export declare const getWeakModuleFilterOptions: (config?: WeakModuleFromNodeConfig) => {
|
|
3
3
|
direction: import("@xyo-network/module-model").Direction | undefined;
|
|
4
|
-
identity: import("@xylabs/object").TypeCheck<import("@xyo-network/module-model").ModuleInstance<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/module-model").ModuleConfig>>, import("@xyo-network/module-model").ModuleEventData<object>>> | undefined;
|
|
4
|
+
identity: import("@xylabs/object-model").TypeCheck<import("@xyo-network/module-model").ModuleInstance<import("@xyo-network/module-model").ModuleParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/module-model").ModuleConfig>>, import("@xyo-network/module-model").ModuleEventData<object>>> | undefined;
|
|
5
5
|
maxDepth: number | undefined;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=getWeakModuleFilterOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWeakModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModulesFromNode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAIjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAGrE,eAAO,MAAM,sBAAsB,GACjC,MAAM,gBAAgB,EAAE,EACxB,SAAS,oBAAoB,KAC5B,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"useWeakModulesFromNode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWeakModulesFromNode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAIjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAGrE,eAAO,MAAM,sBAAsB,GACjC,MAAM,gBAAgB,EAAE,EACxB,SAAS,oBAAoB,KAC5B,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,SAAS,CA6B3D,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1,55 +1,60 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/components/Node.tsx
|
|
5
|
+
import React2 from "react";
|
|
6
|
+
|
|
1
7
|
// src/components/NodeDescriptionBox.tsx
|
|
2
8
|
import { FlexCol } from "@xylabs/react-flexbox";
|
|
9
|
+
import React from "react";
|
|
3
10
|
|
|
4
11
|
// src/hooks/getModuleFilterOptions.ts
|
|
5
|
-
var getModuleFilterOptions = (config) => {
|
|
6
|
-
const {
|
|
7
|
-
direction,
|
|
8
|
-
identity,
|
|
9
|
-
maxDepth
|
|
10
|
-
} = config ?? {};
|
|
12
|
+
var getModuleFilterOptions = /* @__PURE__ */ __name((config) => {
|
|
13
|
+
const { direction, identity, maxDepth } = config ?? {};
|
|
11
14
|
return {
|
|
12
15
|
direction,
|
|
13
16
|
identity,
|
|
14
17
|
maxDepth
|
|
15
18
|
};
|
|
16
|
-
};
|
|
19
|
+
}, "getModuleFilterOptions");
|
|
17
20
|
|
|
18
21
|
// src/hooks/getWeakModuleFilterOptions.ts
|
|
19
|
-
var getWeakModuleFilterOptions = (config) => {
|
|
20
|
-
const {
|
|
21
|
-
direction,
|
|
22
|
-
identity,
|
|
23
|
-
maxDepth
|
|
24
|
-
} = config ?? {};
|
|
22
|
+
var getWeakModuleFilterOptions = /* @__PURE__ */ __name((config) => {
|
|
23
|
+
const { direction, identity, maxDepth } = config ?? {};
|
|
25
24
|
return {
|
|
26
25
|
direction,
|
|
27
26
|
identity,
|
|
28
27
|
maxDepth
|
|
29
28
|
};
|
|
30
|
-
};
|
|
29
|
+
}, "getWeakModuleFilterOptions");
|
|
31
30
|
|
|
32
31
|
// src/hooks/ModuleFromNodeConfig.ts
|
|
33
|
-
var getModuleFromNodeConfigLogger = (config) => {
|
|
32
|
+
var getModuleFromNodeConfigLogger = /* @__PURE__ */ __name((config) => {
|
|
34
33
|
return config?.logger;
|
|
35
|
-
};
|
|
34
|
+
}, "getModuleFromNodeConfigLogger");
|
|
36
35
|
|
|
37
36
|
// src/hooks/provided/useProvidedNode.tsx
|
|
38
37
|
import { NodeContext } from "@xyo-network/react-node-context";
|
|
39
38
|
import { use } from "react";
|
|
40
|
-
var useProvidedNode = () => {
|
|
39
|
+
var useProvidedNode = /* @__PURE__ */ __name(() => {
|
|
41
40
|
const { node } = use(NodeContext);
|
|
42
|
-
return [
|
|
43
|
-
|
|
41
|
+
return [
|
|
42
|
+
node
|
|
43
|
+
];
|
|
44
|
+
}, "useProvidedNode");
|
|
44
45
|
|
|
45
46
|
// src/hooks/provided/useWeakProvidedNode.tsx
|
|
46
47
|
import { NodeContext as NodeContext2 } from "@xyo-network/react-node-context";
|
|
47
48
|
import { use as use2, useMemo } from "react";
|
|
48
|
-
var useWeakProvidedNode = () => {
|
|
49
|
+
var useWeakProvidedNode = /* @__PURE__ */ __name(() => {
|
|
49
50
|
const { node } = use2(NodeContext2);
|
|
50
|
-
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [
|
|
52
|
+
node
|
|
53
|
+
]);
|
|
54
|
+
return [
|
|
55
|
+
weakNode
|
|
56
|
+
];
|
|
57
|
+
}, "useWeakProvidedNode");
|
|
53
58
|
|
|
54
59
|
// src/hooks/useModuleFromNode.ts
|
|
55
60
|
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
@@ -62,26 +67,39 @@ import { asNodeInstance } from "@xyo-network/node-model";
|
|
|
62
67
|
|
|
63
68
|
// src/hooks/useNodeConfigNodeField.ts
|
|
64
69
|
import { useMemo as useMemo2 } from "react";
|
|
65
|
-
var useNodeConfigNodeField = (config) => {
|
|
66
|
-
const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
var useNodeConfigNodeField = /* @__PURE__ */ __name((config) => {
|
|
71
|
+
const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
72
|
+
config?.node
|
|
73
|
+
]);
|
|
74
|
+
const nodeInstance = useMemo2(() => typeof config?.node === "object" ? config?.node : void 0, [
|
|
75
|
+
config?.node
|
|
76
|
+
]);
|
|
77
|
+
return [
|
|
78
|
+
nodeAddress,
|
|
79
|
+
nodeInstance
|
|
80
|
+
];
|
|
81
|
+
}, "useNodeConfigNodeField");
|
|
70
82
|
|
|
71
83
|
// src/hooks/useNode.ts
|
|
72
|
-
var useNode = (config) => {
|
|
84
|
+
var useNode = /* @__PURE__ */ __name((config) => {
|
|
73
85
|
const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config);
|
|
74
86
|
const [providedNode] = useProvidedNode();
|
|
75
87
|
const [nodeAddressNode, error] = usePromise(async () => {
|
|
76
88
|
if (providedNode && nodeAddress) {
|
|
77
89
|
return asNodeInstance(await providedNode.resolve(nodeAddress), "Module is not a node");
|
|
78
90
|
}
|
|
79
|
-
}, [
|
|
80
|
-
|
|
81
|
-
|
|
91
|
+
}, [
|
|
92
|
+
providedNode,
|
|
93
|
+
nodeAddress
|
|
94
|
+
]);
|
|
95
|
+
return [
|
|
96
|
+
nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
|
|
97
|
+
error
|
|
98
|
+
];
|
|
99
|
+
}, "useNode");
|
|
82
100
|
|
|
83
101
|
// src/hooks/useModuleFromNode.ts
|
|
84
|
-
var useModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
102
|
+
var useModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = void 0, config) => {
|
|
85
103
|
const [node, nodeError] = useNode(config);
|
|
86
104
|
const logger = getModuleFromNodeConfigLogger(config);
|
|
87
105
|
const filterOptions = getModuleFilterOptions(config);
|
|
@@ -112,15 +130,21 @@ var useModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
|
112
130
|
return result;
|
|
113
131
|
}
|
|
114
132
|
logger?.debug("Result: No Node");
|
|
115
|
-
}, [
|
|
116
|
-
|
|
117
|
-
|
|
133
|
+
}, [
|
|
134
|
+
node,
|
|
135
|
+
nameOrAddressOrInstance
|
|
136
|
+
]);
|
|
137
|
+
return [
|
|
138
|
+
result,
|
|
139
|
+
nodeError ?? error
|
|
140
|
+
];
|
|
141
|
+
}, "useModuleFromNode");
|
|
118
142
|
|
|
119
143
|
// src/hooks/useModulesFromNode.ts
|
|
120
|
-
import { exists } from "@xylabs/exists";
|
|
121
144
|
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
145
|
+
import { exists } from "@xylabs/sdk-js";
|
|
122
146
|
import { useState as useState2 } from "react";
|
|
123
|
-
var useModulesFromNode = (ids, config) => {
|
|
147
|
+
var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
124
148
|
const [node, nodeError] = useNode(config);
|
|
125
149
|
const logger = config?.logger;
|
|
126
150
|
const filterOptions = getModuleFilterOptions();
|
|
@@ -128,11 +152,11 @@ var useModulesFromNode = (ids, config) => {
|
|
|
128
152
|
const [, error] = usePromise3(async () => {
|
|
129
153
|
logger?.debug("useModuleFromNode: resolving");
|
|
130
154
|
if (node) {
|
|
131
|
-
const refreshModules = async () => {
|
|
155
|
+
const refreshModules = /* @__PURE__ */ __name(async () => {
|
|
132
156
|
const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists) : await node.resolve("*", filterOptions);
|
|
133
157
|
setResult(moduleInstances);
|
|
134
158
|
return moduleInstances;
|
|
135
|
-
};
|
|
159
|
+
}, "refreshModules");
|
|
136
160
|
node.on("moduleAttached", async ({ mod }) => {
|
|
137
161
|
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
138
162
|
await refreshModules();
|
|
@@ -144,42 +168,62 @@ var useModulesFromNode = (ids, config) => {
|
|
|
144
168
|
return await refreshModules();
|
|
145
169
|
}
|
|
146
170
|
console.log("Result: No Node");
|
|
147
|
-
}, [
|
|
148
|
-
|
|
149
|
-
|
|
171
|
+
}, [
|
|
172
|
+
node,
|
|
173
|
+
ids
|
|
174
|
+
]);
|
|
175
|
+
return [
|
|
176
|
+
result,
|
|
177
|
+
nodeError ?? error
|
|
178
|
+
];
|
|
179
|
+
}, "useModulesFromNode");
|
|
150
180
|
|
|
151
181
|
// src/hooks/useNodeDescription.ts
|
|
152
182
|
import { usePromise as usePromise4 } from "@xylabs/react-promise";
|
|
153
183
|
import { ModuleDescriptionSchema } from "@xyo-network/module-model";
|
|
154
184
|
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
155
|
-
var useNodeDescription = (config) => {
|
|
185
|
+
var useNodeDescription = /* @__PURE__ */ __name((config) => {
|
|
156
186
|
const [activeNode, nodeError] = useNode(config);
|
|
157
187
|
const [description, error] = usePromise4(async () => {
|
|
158
188
|
const state = await activeNode?.state();
|
|
159
189
|
return state?.find(isPayloadOfSchemaType(ModuleDescriptionSchema));
|
|
160
|
-
}, [
|
|
161
|
-
|
|
162
|
-
|
|
190
|
+
}, [
|
|
191
|
+
activeNode
|
|
192
|
+
]);
|
|
193
|
+
return [
|
|
194
|
+
description,
|
|
195
|
+
nodeError ?? error
|
|
196
|
+
];
|
|
197
|
+
}, "useNodeDescription");
|
|
163
198
|
|
|
164
199
|
// src/hooks/useNodeFromNode.tsx
|
|
165
200
|
import { asNodeInstance as asNodeInstance2 } from "@xyo-network/node-model";
|
|
166
|
-
var useNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
201
|
+
var useNodeFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance, config) => {
|
|
167
202
|
const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config);
|
|
168
203
|
const instance = asNodeInstance2(mod);
|
|
169
204
|
if (mod && !instance) {
|
|
170
205
|
const error2 = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
|
|
171
206
|
console.error(error2.message);
|
|
172
|
-
return [
|
|
207
|
+
return [
|
|
208
|
+
void 0,
|
|
209
|
+
error2
|
|
210
|
+
];
|
|
173
211
|
}
|
|
174
|
-
return [
|
|
175
|
-
|
|
212
|
+
return [
|
|
213
|
+
instance,
|
|
214
|
+
error
|
|
215
|
+
];
|
|
216
|
+
}, "useNodeFromNode");
|
|
176
217
|
|
|
177
218
|
// src/hooks/useNodesFromNode.tsx
|
|
178
219
|
import { isNodeInstance } from "@xyo-network/node-model";
|
|
179
|
-
var useNodesFromNode = (ids, config) => {
|
|
220
|
+
var useNodesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
180
221
|
const [modules, error] = useModulesFromNode(ids, config);
|
|
181
222
|
if (error) {
|
|
182
|
-
return [
|
|
223
|
+
return [
|
|
224
|
+
null,
|
|
225
|
+
error
|
|
226
|
+
];
|
|
183
227
|
}
|
|
184
228
|
return modules ? [
|
|
185
229
|
// eslint-disable-next-line unicorn/no-array-reduce
|
|
@@ -190,8 +234,11 @@ var useNodesFromNode = (ids, config) => {
|
|
|
190
234
|
return prev;
|
|
191
235
|
}, []),
|
|
192
236
|
void 0
|
|
193
|
-
] : [
|
|
194
|
-
|
|
237
|
+
] : [
|
|
238
|
+
modules,
|
|
239
|
+
error
|
|
240
|
+
];
|
|
241
|
+
}, "useNodesFromNode");
|
|
195
242
|
|
|
196
243
|
// src/hooks/useWeakModuleFromNode.ts
|
|
197
244
|
import { usePromise as usePromise6 } from "@xylabs/react-promise";
|
|
@@ -200,37 +247,52 @@ import { useState as useState3 } from "react";
|
|
|
200
247
|
|
|
201
248
|
// src/hooks/useWeakNode.ts
|
|
202
249
|
import { usePromise as usePromise5 } from "@xylabs/react-promise";
|
|
203
|
-
import { isDefined } from "@xylabs/
|
|
250
|
+
import { isDefined } from "@xylabs/sdk-js";
|
|
204
251
|
import { asNodeInstance as asNodeInstance3 } from "@xyo-network/node-model";
|
|
205
252
|
|
|
206
253
|
// src/hooks/useWeakNodeConfigNodeField.ts
|
|
207
254
|
import { useMemo as useMemo3 } from "react";
|
|
208
|
-
var useWeakNodeConfigNodeField = (config) => {
|
|
209
|
-
const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
255
|
+
var useWeakNodeConfigNodeField = /* @__PURE__ */ __name((config) => {
|
|
256
|
+
const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
257
|
+
config?.node
|
|
258
|
+
]);
|
|
259
|
+
const nodeInstance = useMemo3(() => typeof config?.node === "object" ? config?.node : void 0, [
|
|
260
|
+
config?.node
|
|
261
|
+
]);
|
|
262
|
+
return [
|
|
263
|
+
nodeAddress,
|
|
264
|
+
nodeInstance
|
|
265
|
+
];
|
|
266
|
+
}, "useWeakNodeConfigNodeField");
|
|
213
267
|
|
|
214
268
|
// src/hooks/useWeakNode.ts
|
|
215
|
-
var useWeakNode = (config) => {
|
|
269
|
+
var useWeakNode = /* @__PURE__ */ __name((config) => {
|
|
216
270
|
const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config);
|
|
217
271
|
const [providedNode] = useWeakProvidedNode();
|
|
218
272
|
const [nodeAddressNode, error] = usePromise5(async () => {
|
|
219
273
|
const providedNodeInstance = providedNode?.deref();
|
|
220
274
|
if (providedNodeInstance && isDefined(nodeAddress)) {
|
|
221
|
-
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", {
|
|
275
|
+
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", {
|
|
276
|
+
required: true
|
|
277
|
+
}));
|
|
222
278
|
}
|
|
223
|
-
}, [
|
|
224
|
-
|
|
225
|
-
|
|
279
|
+
}, [
|
|
280
|
+
providedNode,
|
|
281
|
+
nodeAddress
|
|
282
|
+
]);
|
|
283
|
+
return [
|
|
284
|
+
nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
|
|
285
|
+
error
|
|
286
|
+
];
|
|
287
|
+
}, "useWeakNode");
|
|
226
288
|
|
|
227
289
|
// src/hooks/WeakModuleFromNodeConfig.ts
|
|
228
|
-
var getWeakModuleFromNodeConfigLogger = (config) => {
|
|
290
|
+
var getWeakModuleFromNodeConfigLogger = /* @__PURE__ */ __name((config) => {
|
|
229
291
|
return config?.logger;
|
|
230
|
-
};
|
|
292
|
+
}, "getWeakModuleFromNodeConfigLogger");
|
|
231
293
|
|
|
232
294
|
// src/hooks/useWeakModuleFromNode.ts
|
|
233
|
-
var useWeakModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
295
|
+
var useWeakModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = void 0, config) => {
|
|
234
296
|
const [node, nodeError] = useWeakNode(config);
|
|
235
297
|
const logger = getWeakModuleFromNodeConfigLogger(config);
|
|
236
298
|
const filterOptions = getWeakModuleFilterOptions(config);
|
|
@@ -262,15 +324,21 @@ var useWeakModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
|
262
324
|
return result;
|
|
263
325
|
}
|
|
264
326
|
logger?.debug("Result: No Node");
|
|
265
|
-
}, [
|
|
266
|
-
|
|
267
|
-
|
|
327
|
+
}, [
|
|
328
|
+
node,
|
|
329
|
+
nameOrAddressOrInstance
|
|
330
|
+
]);
|
|
331
|
+
return [
|
|
332
|
+
result,
|
|
333
|
+
nodeError ?? error
|
|
334
|
+
];
|
|
335
|
+
}, "useWeakModuleFromNode");
|
|
268
336
|
|
|
269
337
|
// src/hooks/useWeakModulesFromNode.ts
|
|
270
|
-
import { exists as exists2 } from "@xylabs/exists";
|
|
271
338
|
import { usePromise as usePromise7 } from "@xylabs/react-promise";
|
|
339
|
+
import { exists as exists2 } from "@xylabs/sdk-js";
|
|
272
340
|
import { useState as useState4 } from "react";
|
|
273
|
-
var useWeakModulesFromNode = (ids, config) => {
|
|
341
|
+
var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
274
342
|
const [node, nodeError] = useNode(config);
|
|
275
343
|
const logger = config?.logger;
|
|
276
344
|
const filterOptions = getModuleFilterOptions();
|
|
@@ -279,11 +347,11 @@ var useWeakModulesFromNode = (ids, config) => {
|
|
|
279
347
|
logger?.debug("useModuleFromNode: resolving");
|
|
280
348
|
const nodeInstance = node;
|
|
281
349
|
if (nodeInstance) {
|
|
282
|
-
const refreshModules = async () => {
|
|
350
|
+
const refreshModules = /* @__PURE__ */ __name(async () => {
|
|
283
351
|
const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists2) : await node.resolve("*", filterOptions);
|
|
284
352
|
setResult(moduleInstances.map((mod) => new WeakRef(mod)));
|
|
285
353
|
return moduleInstances;
|
|
286
|
-
};
|
|
354
|
+
}, "refreshModules");
|
|
287
355
|
nodeInstance.on("moduleAttached", async ({ mod }) => {
|
|
288
356
|
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
289
357
|
await refreshModules();
|
|
@@ -295,138 +363,197 @@ var useWeakModulesFromNode = (ids, config) => {
|
|
|
295
363
|
return await refreshModules();
|
|
296
364
|
}
|
|
297
365
|
console.log("Result: No Node");
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
366
|
+
}, [
|
|
367
|
+
node,
|
|
368
|
+
ids
|
|
369
|
+
]);
|
|
370
|
+
return [
|
|
371
|
+
result,
|
|
372
|
+
nodeError ?? error
|
|
373
|
+
];
|
|
374
|
+
}, "useWeakModulesFromNode");
|
|
302
375
|
|
|
303
376
|
// src/hooks/useWeakNodeDescription.ts
|
|
304
377
|
import { usePromise as usePromise8 } from "@xylabs/react-promise";
|
|
305
378
|
import { ModuleDescriptionSchema as ModuleDescriptionSchema2 } from "@xyo-network/module-model";
|
|
306
379
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
307
|
-
var useWeakNodeDescription = (config) => {
|
|
380
|
+
var useWeakNodeDescription = /* @__PURE__ */ __name((config) => {
|
|
308
381
|
const [activeNode, nodeError] = useWeakNode(config);
|
|
309
382
|
const [description, error] = usePromise8(async () => {
|
|
310
383
|
const state = await activeNode?.deref()?.state();
|
|
311
384
|
return state?.find(isPayloadOfSchemaType2(ModuleDescriptionSchema2));
|
|
312
|
-
}, [
|
|
313
|
-
|
|
314
|
-
|
|
385
|
+
}, [
|
|
386
|
+
activeNode
|
|
387
|
+
]);
|
|
388
|
+
return [
|
|
389
|
+
description,
|
|
390
|
+
nodeError ?? error
|
|
391
|
+
];
|
|
392
|
+
}, "useWeakNodeDescription");
|
|
315
393
|
|
|
316
394
|
// src/hooks/useWeakNodeFromNode.tsx
|
|
317
395
|
import { isNodeInstance as isNodeInstance2 } from "@xyo-network/node-model";
|
|
318
|
-
var useWeakNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
319
|
-
return useWeakModuleFromNode(nameOrAddressOrInstance, {
|
|
320
|
-
|
|
396
|
+
var useWeakNodeFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance, config) => {
|
|
397
|
+
return useWeakModuleFromNode(nameOrAddressOrInstance, {
|
|
398
|
+
identity: isNodeInstance2,
|
|
399
|
+
...config
|
|
400
|
+
});
|
|
401
|
+
}, "useWeakNodeFromNode");
|
|
321
402
|
|
|
322
403
|
// src/components/NodeDescriptionBox.tsx
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
404
|
+
var NodeDescriptionBox = /* @__PURE__ */ __name(({ node, ...props }) => {
|
|
405
|
+
const [description, error] = useWeakNodeDescription({
|
|
406
|
+
node
|
|
407
|
+
});
|
|
408
|
+
return /* @__PURE__ */ React.createElement(FlexCol, props, /* @__PURE__ */ React.createElement("code", {
|
|
409
|
+
color: error ? "red" : void 0
|
|
410
|
+
}, error ? error.message : JSON.stringify(description, null, 2)));
|
|
411
|
+
}, "NodeDescriptionBox");
|
|
328
412
|
|
|
329
413
|
// src/components/Node.tsx
|
|
330
|
-
|
|
331
|
-
var NodeBox = ({ variant, ...props }) => {
|
|
414
|
+
var NodeBox = /* @__PURE__ */ __name(({ variant, ...props }) => {
|
|
332
415
|
switch (variant) {
|
|
333
416
|
// eslint-disable-next-line unicorn/no-useless-switch-case
|
|
334
417
|
case "description":
|
|
335
418
|
default: {
|
|
336
|
-
return /* @__PURE__ */
|
|
419
|
+
return /* @__PURE__ */ React2.createElement(NodeDescriptionBox, props);
|
|
337
420
|
}
|
|
338
421
|
}
|
|
339
|
-
};
|
|
422
|
+
}, "NodeBox");
|
|
340
423
|
|
|
341
424
|
// src/components/NodeDrawer.tsx
|
|
342
425
|
import { Close as CloseIcon } from "@mui/icons-material";
|
|
343
|
-
import {
|
|
344
|
-
ClickAwayListener,
|
|
345
|
-
Drawer,
|
|
346
|
-
IconButton
|
|
347
|
-
} from "@mui/material";
|
|
426
|
+
import { ClickAwayListener, Drawer, IconButton } from "@mui/material";
|
|
348
427
|
import { FlexGrowCol, FlexRow } from "@xylabs/react-flexbox";
|
|
349
428
|
import { useNodeDrawer } from "@xyo-network/react-node-provider";
|
|
429
|
+
import React5 from "react";
|
|
350
430
|
|
|
351
431
|
// src/components/render/ModuleDescriptionBox.tsx
|
|
352
432
|
import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from "@mui/icons-material";
|
|
353
433
|
import { styled as styled2, Typography } from "@mui/material";
|
|
354
434
|
import { SimpleTreeView } from "@mui/x-tree-view";
|
|
355
|
-
import { useRef } from "react";
|
|
435
|
+
import React4, { useRef } from "react";
|
|
356
436
|
|
|
357
437
|
// src/components/render/RenderModule.tsx
|
|
358
438
|
import { styled } from "@mui/material";
|
|
359
439
|
import { TreeItem } from "@mui/x-tree-view";
|
|
360
440
|
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
361
|
-
import { useState as useState5 } from "react";
|
|
362
|
-
|
|
363
|
-
var RenderModule = ({ mod, idRef }) => {
|
|
441
|
+
import React3, { useState as useState5 } from "react";
|
|
442
|
+
var RenderModule = /* @__PURE__ */ __name(({ mod, idRef }) => {
|
|
364
443
|
const [childModules, setChildModules] = useState5();
|
|
365
|
-
useAsyncEffect(
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
setChildModules(children.map((childModule) => new WeakRef(childModule)));
|
|
373
|
-
}
|
|
444
|
+
useAsyncEffect(async (mounted) => {
|
|
445
|
+
const moduleInstance2 = mod.deref();
|
|
446
|
+
const { address: address2 } = moduleInstance2 ?? {};
|
|
447
|
+
if (moduleInstance2) {
|
|
448
|
+
const children = (await moduleInstance2.resolve("*")).filter((childModule) => childModule.address !== address2);
|
|
449
|
+
if (mounted()) {
|
|
450
|
+
setChildModules(children.map((childModule) => new WeakRef(childModule)));
|
|
374
451
|
}
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
452
|
+
}
|
|
453
|
+
}, [
|
|
454
|
+
mod
|
|
455
|
+
]);
|
|
456
|
+
const increment = /* @__PURE__ */ __name(() => {
|
|
379
457
|
const newId = (idRef.current.idIncrementor++).toString();
|
|
380
458
|
idRef.current.ids.push(newId);
|
|
381
459
|
return newId;
|
|
382
|
-
};
|
|
460
|
+
}, "increment");
|
|
383
461
|
const moduleInstance = mod.deref();
|
|
384
462
|
const { queries, address } = moduleInstance ?? {};
|
|
385
|
-
return /* @__PURE__ */
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
463
|
+
return /* @__PURE__ */ React3.createElement(StyledAddressTreeItem, {
|
|
464
|
+
itemId: increment(),
|
|
465
|
+
label: `address: ${address}`
|
|
466
|
+
}, queries?.map((query, index) => {
|
|
467
|
+
return /* @__PURE__ */ React3.createElement(TreeItem, {
|
|
468
|
+
key: query,
|
|
469
|
+
itemId: increment(),
|
|
470
|
+
label: `query : ${query}`,
|
|
471
|
+
sx: {
|
|
472
|
+
mb: index === queries.length - 1 ? 1.5 : 0.5
|
|
473
|
+
}
|
|
474
|
+
});
|
|
475
|
+
}), childModules && childModules.length > 0 ? /* @__PURE__ */ React3.createElement(TreeItem, {
|
|
476
|
+
itemId: increment(),
|
|
477
|
+
label: "children",
|
|
478
|
+
sx: {
|
|
479
|
+
mb: 0.5
|
|
480
|
+
}
|
|
481
|
+
}, childModules.map((childModuleRef) => {
|
|
482
|
+
const childModule = childModuleRef.deref();
|
|
483
|
+
return childModule ? /* @__PURE__ */ React3.createElement(RenderModule, {
|
|
484
|
+
key: childModule?.address,
|
|
485
|
+
mod: childModuleRef,
|
|
486
|
+
idRef
|
|
487
|
+
}) : null;
|
|
488
|
+
})) : null);
|
|
489
|
+
}, "RenderModule");
|
|
490
|
+
var StyledAddressTreeItem = styled(TreeItem, {
|
|
491
|
+
name: "StyledAddressTreeItem"
|
|
492
|
+
})(({ theme }) => ({
|
|
493
|
+
"& .MuiTreeItem-content": {
|
|
494
|
+
marginBottom: theme.spacing(0.25)
|
|
495
|
+
}
|
|
496
|
+
}));
|
|
396
497
|
|
|
397
498
|
// src/components/render/ModuleDescriptionBox.tsx
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
}
|
|
414
|
-
|
|
499
|
+
var ModuleDescriptionBox = /* @__PURE__ */ __name(({ mod }) => {
|
|
500
|
+
const idRef = useRef({
|
|
501
|
+
idIncrementor: 0,
|
|
502
|
+
ids: []
|
|
503
|
+
});
|
|
504
|
+
return /* @__PURE__ */ React4.createElement(React4.Fragment, null, mod ? /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(Typography, {
|
|
505
|
+
variant: "h4"
|
|
506
|
+
}, "Node Configuration"), /* @__PURE__ */ React4.createElement(StyledTreeView, {
|
|
507
|
+
"aria-label": "file system navigator",
|
|
508
|
+
slots: {
|
|
509
|
+
collapseIcon: ExpandMoreIcon,
|
|
510
|
+
expandIcon: ChevronRightIcon
|
|
511
|
+
},
|
|
512
|
+
sx: {
|
|
513
|
+
flexGrow: 1
|
|
514
|
+
}
|
|
515
|
+
}, /* @__PURE__ */ React4.createElement(RenderModule, {
|
|
516
|
+
mod,
|
|
517
|
+
idRef
|
|
518
|
+
}))) : mod === null ? /* @__PURE__ */ React4.createElement(Typography, {
|
|
519
|
+
variant: "h4"
|
|
520
|
+
}, "Node loading...") : /* @__PURE__ */ React4.createElement(Typography, {
|
|
521
|
+
variant: "h4"
|
|
522
|
+
}, "Node not found"));
|
|
523
|
+
}, "ModuleDescriptionBox");
|
|
524
|
+
var StyledTreeView = styled2(SimpleTreeView, {
|
|
525
|
+
name: "StyledTreeView"
|
|
526
|
+
})(() => ({
|
|
415
527
|
height: "auto",
|
|
416
528
|
maxWidth: "auto"
|
|
417
529
|
}));
|
|
418
530
|
|
|
419
531
|
// src/components/NodeDrawer.tsx
|
|
420
|
-
|
|
421
|
-
var NodeDrawer = ({ children, ...props }) => {
|
|
532
|
+
var NodeDrawer = /* @__PURE__ */ __name(({ children, ...props }) => {
|
|
422
533
|
const { open, setOpen } = useNodeDrawer();
|
|
423
534
|
const [node] = useWeakProvidedNode();
|
|
424
|
-
return /* @__PURE__ */
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
535
|
+
return /* @__PURE__ */ React5.createElement(Drawer, {
|
|
536
|
+
open: open ?? false,
|
|
537
|
+
anchor: "right",
|
|
538
|
+
...props
|
|
539
|
+
}, /* @__PURE__ */ React5.createElement(ClickAwayListener, {
|
|
540
|
+
onClickAway: /* @__PURE__ */ __name(() => setOpen?.(false), "onClickAway")
|
|
541
|
+
}, /* @__PURE__ */ React5.createElement(FlexGrowCol, {
|
|
542
|
+
role: "presentation",
|
|
543
|
+
justifyContent: "start",
|
|
544
|
+
p: 2,
|
|
545
|
+
rowGap: 2,
|
|
546
|
+
minWidth: "33vw"
|
|
547
|
+
}, /* @__PURE__ */ React5.createElement(FlexRow, {
|
|
548
|
+
alignContent: "start",
|
|
549
|
+
justifyContent: "start",
|
|
550
|
+
width: "100%"
|
|
551
|
+
}, /* @__PURE__ */ React5.createElement(IconButton, {
|
|
552
|
+
onClick: /* @__PURE__ */ __name(() => setOpen?.(false), "onClick")
|
|
553
|
+
}, /* @__PURE__ */ React5.createElement(CloseIcon, null))), /* @__PURE__ */ React5.createElement(ModuleDescriptionBox, {
|
|
554
|
+
mod: node
|
|
555
|
+
}), children)));
|
|
556
|
+
}, "NodeDrawer");
|
|
430
557
|
|
|
431
558
|
// src/index.ts
|
|
432
559
|
export * from "@xyo-network/react-node-context";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/NodeDescriptionBox.tsx","../../src/hooks/getModuleFilterOptions.ts","../../src/hooks/getWeakModuleFilterOptions.ts","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/provided/useWeakProvidedNode.tsx","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useNodesFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeDescription.ts","../../src/hooks/useWeakNodeFromNode.tsx","../../src/components/Node.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx","../../src/index.ts"],"sourcesContent":["import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { useWeakNodeDescription } from '../hooks/index.ts'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useWeakNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const getModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const getWeakModuleFilterOptions = (config?: WeakModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const getModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = use(NodeContext)\n return [node]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use, useMemo } from 'react'\n\nexport const useWeakProvidedNode = (): [WeakRef<NodeInstance> | null | undefined] => {\n const { node } = use(NodeContext)\n const weakNode = useMemo(() => (node ? new WeakRef(node) : null), [node])\n return [weakNode]\n}\n","import type { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { getModuleFromNodeConfigLogger } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: T extends ModuleInstance ? ModuleFromNodeConfig<T> : ModuleFromNodeConfig | undefined,\n): [(T extends ModuleInstance ? T : ModuleInstance) | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = getModuleFromNodeConfigLogger(config)\n const filterOptions = getModuleFilterOptions(config)\n const [result, setResult] = useState<(T extends ModuleInstance ? T : ModuleInstance) | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? (mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n node.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? (result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useProvidedNode } from './provided/index.ts'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField.ts'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { exists } from '@xylabs/exists'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModulesFromNode */\nexport const useModulesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n node.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n node.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModuleFromNode } from './useModuleFromNode.ts'\n\n/** @deprecated use useWeakNodeFromNode instead */\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModulesFromNode } from './useModulesFromNode.ts'\n\n/** @deprecated use useWeakNodesFromNode */\nexport const useNodesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [NodeInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(ids, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<NodeInstance[]>((prev, mod) => {\n if (isNodeInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import type { TypeCheck } from '@xylabs/object'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getWeakModuleFilterOptions } from './getWeakModuleFilterOptions.ts'\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\nimport { getWeakModuleFromNodeConfigLogger } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useWeakNode(config)\n const logger = getWeakModuleFromNodeConfigLogger(config)\n const filterOptions = getWeakModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n const nodeInstance = node?.deref()\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? new WeakRef(mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance as T extends ModuleInstance ? T : ModuleInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? new WeakRef(result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/typeof'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakProvidedNode } from './provided/index.ts'\nimport { useWeakNodeConfigNodeField } from './useWeakNodeConfigNodeField.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNode = (config?: WeakModuleFromNodeConfig | undefined): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config)\n const [providedNode] = useWeakProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n const providedNodeInstance = providedNode?.deref()\n if (providedNodeInstance && isDefined(nodeAddress)) {\n return new WeakRef(asNodeInstance(await providedNodeInstance.resolve(nodeAddress), () => 'Module is not a node', { required: true }))\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { ModuleFilterOptions } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const getWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { exists } from '@xylabs/exists'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useWeakModulesFromNode = (\n ids?: ModuleIdentifier[],\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances.map(mod => new WeakRef(mod)))\n return moduleInstances\n }\n nodeInstance.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n nodeInstance.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n return\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeDescription = (config?: WeakModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useWeakNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.deref()?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakModuleFromNode } from './useWeakModuleFromNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<NodeInstance>(nameOrAddressOrInstance, { identity: isNodeInstance, ...config })\n}\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox.tsx'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport type { DrawerProps } from '@mui/material'\nimport {\n ClickAwayListener, Drawer, IconButton,\n} from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { useWeakProvidedNode } from '../hooks/index.ts'\nimport { ModuleDescriptionBox } from './render/index.ts'\n\nexport interface NodeDrawerProps extends PropsWithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useWeakProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox mod={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { SimpleTreeView } from '@mui/x-tree-view'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport React, { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule.tsx'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n mod?: WeakRef<ModuleInstance> | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ mod }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {mod\n ? (\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n slots={{ collapseIcon: ExpandMoreIcon, expandIcon: ChevronRightIcon }}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule mod={mod} idRef={idRef} />\n </StyledTreeView>\n </>\n )\n : mod === null\n ? <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(SimpleTreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport type { MutableRefObject } from 'react'\nimport React, { useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: MutableRefObject<{\n idIncrementor: number\n ids: string[]\n }>\n mod: WeakRef<ModuleInstance>\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ mod, idRef }) => {\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n\n async (mounted) => {\n const moduleInstance = mod.deref()\n const { address } = moduleInstance ?? {}\n if (moduleInstance) {\n const children = (await moduleInstance.resolve('*')).filter(childModule => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map(childModule => new WeakRef(childModule)))\n }\n }\n },\n [mod],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n const moduleInstance = mod.deref()\n const { queries, address } = moduleInstance ?? {}\n\n return (\n <StyledAddressTreeItem itemId={increment()} label={`address: ${address}`}>\n {queries?.map((query, index) => {\n return <TreeItem key={query} itemId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0\n ? (\n <TreeItem itemId={increment()} label=\"children\" sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} mod={childModuleRef} idRef={idRef} /> : null\n })}\n </TreeItem>\n )\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => (\n { '& .MuiTreeItem-content': { marginBottom: theme.spacing(0.25) } }\n))\n","export * from './components/index.ts'\nexport * from './hooks/index.ts'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n"],"mappings":"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","names":["NodeContext","use","usePromise","useMemo","usePromise","result","usePromise","useState","useState","usePromise","usePromise","usePromise","asNodeInstance","asNodeInstance","error","usePromise","isModuleInstance","useState","usePromise","asNodeInstance","useMemo","usePromise","asNodeInstance","useState","usePromise","isModuleInstance","result","exists","usePromise","useState","useState","usePromise","exists","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","usePromise","isPayloadOfSchemaType","ModuleDescriptionSchema","isNodeInstance","isNodeInstance","jsx","styled","useState","jsx","moduleInstance","address","jsx","jsxs","styled","jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/Node.tsx","../../src/components/NodeDescriptionBox.tsx","../../src/hooks/getModuleFilterOptions.ts","../../src/hooks/getWeakModuleFilterOptions.ts","../../src/hooks/ModuleFromNodeConfig.ts","../../src/hooks/provided/useProvidedNode.tsx","../../src/hooks/provided/useWeakProvidedNode.tsx","../../src/hooks/useModuleFromNode.ts","../../src/hooks/useNode.ts","../../src/hooks/useNodeConfigNodeField.ts","../../src/hooks/useModulesFromNode.ts","../../src/hooks/useNodeDescription.ts","../../src/hooks/useNodeFromNode.tsx","../../src/hooks/useNodesFromNode.tsx","../../src/hooks/useWeakModuleFromNode.ts","../../src/hooks/useWeakNode.ts","../../src/hooks/useWeakNodeConfigNodeField.ts","../../src/hooks/WeakModuleFromNodeConfig.ts","../../src/hooks/useWeakModulesFromNode.ts","../../src/hooks/useWeakNodeDescription.ts","../../src/hooks/useWeakNodeFromNode.tsx","../../src/components/NodeDrawer.tsx","../../src/components/render/ModuleDescriptionBox.tsx","../../src/components/render/RenderModule.tsx","../../src/index.ts"],"sourcesContent":["import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { NodeDescriptionBox } from './NodeDescriptionBox.tsx'\n\nexport interface NodeBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n variant?: 'description'\n}\n\nexport const NodeBox: React.FC<NodeBoxProps> = ({ variant, ...props }) => {\n switch (variant) {\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case 'description':\n default: {\n return <NodeDescriptionBox {...props} />\n }\n }\n}\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport React from 'react'\n\nimport { useWeakNodeDescription } from '../hooks/index.ts'\n\nexport interface NodeDescriptionBoxProps extends FlexBoxProps {\n node?: string | WeakRef<NodeInstance>\n}\n\nexport const NodeDescriptionBox: React.FC<NodeDescriptionBoxProps> = ({ node, ...props }) => {\n const [description, error] = useWeakNodeDescription({ node })\n\n return (\n <FlexCol {...props}>\n <code color={error ? 'red' : undefined}>{error ? error.message : JSON.stringify(description, null, 2)}</code>\n </FlexCol>\n )\n}\n","import type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const getModuleFilterOptions = (config?: ModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const getWeakModuleFilterOptions = (config?: WeakModuleFromNodeConfig) => {\n const {\n direction, identity, maxDepth,\n } = config ?? {}\n return {\n direction, identity, maxDepth,\n }\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport type { ModuleFilterOptions, ModuleInstance } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type ModuleFromNodeConfig<T extends ModuleInstance = ModuleInstance> = ModuleFilterOptions<T> & {\n logger?: Logger\n node?: NodeInstance | string\n}\n\nexport const getModuleFromNodeConfigLogger = (config?: ModuleFromNodeConfig) => {\n return config?.logger\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use } from 'react'\n\nexport const useProvidedNode = (): [NodeInstance | null | undefined] => {\n const { node } = use(NodeContext)\n return [node]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { NodeContext } from '@xyo-network/react-node-context'\nimport { use, useMemo } from 'react'\n\nexport const useWeakProvidedNode = (): [WeakRef<NodeInstance> | null | undefined] => {\n const { node } = use(NodeContext)\n const weakNode = useMemo(() => (node ? new WeakRef(node) : null), [node])\n return [weakNode]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { TypeCheck } from '@xylabs/sdk-js'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { getModuleFromNodeConfigLogger } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModuleFromNode */\nexport const useModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: T extends ModuleInstance ? ModuleFromNodeConfig<T> : ModuleFromNodeConfig | undefined,\n): [(T extends ModuleInstance ? T : ModuleInstance) | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = getModuleFromNodeConfigLogger(config)\n const filterOptions = getModuleFilterOptions(config)\n const [result, setResult] = useState<(T extends ModuleInstance ? T : ModuleInstance) | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n if (node && nameOrAddressOrInstance) {\n node.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? (mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n node.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(nameOrAddressOrInstance)\n } else {\n const result = await node.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? (result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useProvidedNode } from './provided/index.ts'\nimport { useNodeConfigNodeField } from './useNodeConfigNodeField.ts'\n\nexport const useNode = (config?: ModuleFromNodeConfig | undefined): [NodeInstance | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config)\n const [providedNode] = useProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n if (providedNode && nodeAddress) {\n return asNodeInstance(await providedNode.resolve(nodeAddress), 'Module is not a node')\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\n\nexport const useNodeConfigNodeField = (config?: ModuleFromNodeConfig | undefined): [string | undefined, NodeInstance | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { exists } from '@xylabs/sdk-js'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\n/** @deprecated use useWeakModulesFromNode */\nexport const useModulesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [ModuleInstance[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<ModuleInstance[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n if (node) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances)\n return moduleInstances\n }\n node.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n node.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useNodeDescription = (config?: ModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModuleFromNode } from './useModuleFromNode.ts'\n\n/** @deprecated use useWeakNodeFromNode instead */\nexport const useNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: ModuleFromNodeConfig,\n): [NodeInstance | undefined, Error | undefined] => {\n const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n const instance = asNodeInstance(mod)\n if (mod && !instance) {\n const error = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n console.error(error.message)\n return [undefined, error]\n }\n return [instance, error]\n}\n","import type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useModulesFromNode } from './useModulesFromNode.ts'\n\n/** @deprecated use useWeakNodesFromNode */\nexport const useNodesFromNode = (ids?: ModuleIdentifier[], config?: ModuleFromNodeConfig): [NodeInstance[] | null | undefined, Error | undefined] => {\n const [modules, error] = useModulesFromNode(ids, config)\n if (error) {\n return [null, error]\n }\n return modules\n ? [\n // eslint-disable-next-line unicorn/no-array-reduce\n modules.reduce<NodeInstance[]>((prev, mod) => {\n if (isNodeInstance(mod)) {\n prev.push(mod)\n }\n return prev\n }, []),\n undefined,\n ]\n : [modules, error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { TypeCheck } from '@xylabs/sdk-js'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { isModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getWeakModuleFilterOptions } from './getWeakModuleFilterOptions.ts'\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\nimport { getWeakModuleFromNodeConfigLogger } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakModuleFromNode = <T extends ModuleInstance | void = void>(\n nameOrAddressOrInstance: string | (T extends ModuleInstance ? T : ModuleInstance) | undefined = undefined,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined, Error | undefined] => {\n const [node, nodeError] = useWeakNode(config)\n const logger = getWeakModuleFromNodeConfigLogger(config)\n const filterOptions = getWeakModuleFilterOptions(config)\n const [result, setResult] = useState<WeakRef<T extends ModuleInstance ? T : ModuleInstance> | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const identity: TypeCheck<T extends ModuleInstance ? T : ModuleInstance> = (config?.identity ?? isModuleInstance) as TypeCheck<\n T extends ModuleInstance ? T : ModuleInstance\n >\n const nodeInstance = node?.deref()\n if (nodeInstance && nameOrAddressOrInstance) {\n nodeInstance.on('moduleAttached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(identity(mod) ? new WeakRef(mod as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n })\n nodeInstance.on('moduleDetached', ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n if (mod.address === nameOrAddressOrInstance || mod.config?.name === nameOrAddressOrInstance) {\n setResult(undefined)\n }\n })\n if (identity(nameOrAddressOrInstance)) {\n setResult(new WeakRef(nameOrAddressOrInstance as T extends ModuleInstance ? T : ModuleInstance))\n } else {\n const result = await nodeInstance.resolve(nameOrAddressOrInstance, filterOptions)\n logger?.debug(`Result: ${result?.address}`)\n setResult(identity(result) ? new WeakRef(result as T extends ModuleInstance ? T : ModuleInstance) : undefined)\n }\n return result\n }\n logger?.debug('Result: No Node')\n }, [node, nameOrAddressOrInstance])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { isDefined } from '@xylabs/sdk-js'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakProvidedNode } from './provided/index.ts'\nimport { useWeakNodeConfigNodeField } from './useWeakNodeConfigNodeField.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNode = (config?: WeakModuleFromNodeConfig | undefined): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config)\n const [providedNode] = useWeakProvidedNode()\n const [nodeAddressNode, error] = usePromise(async () => {\n const providedNodeInstance = providedNode?.deref()\n if (providedNodeInstance && isDefined(nodeAddress)) {\n return new WeakRef(asNodeInstance(await providedNodeInstance.resolve(nodeAddress), () => 'Module is not a node', { required: true }))\n }\n }, [providedNode, nodeAddress])\n return [nodeAddressNode ?? nodeInstance ?? providedNode ?? undefined, error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { useMemo } from 'react'\n\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeConfigNodeField = (\n config?: WeakModuleFromNodeConfig | undefined,\n): [string | undefined, WeakRef<NodeInstance> | undefined] => {\n const nodeAddress = useMemo(() => (typeof config?.node === 'string' ? config?.node : undefined), [config?.node])\n const nodeInstance = useMemo(() => (typeof config?.node === 'object' ? config?.node : undefined), [config?.node])\n return [nodeAddress, nodeInstance]\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport type { ModuleFilterOptions } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nexport type WeakModuleFromNodeConfig = ModuleFilterOptions & {\n logger?: Logger\n node?: WeakRef<NodeInstance> | string\n}\n\nexport const getWeakModuleFromNodeConfigLogger = (config?: WeakModuleFromNodeConfig) => {\n return config?.logger\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport { exists } from '@xylabs/sdk-js'\nimport type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\nimport { useState } from 'react'\n\nimport { getModuleFilterOptions } from './getModuleFilterOptions.ts'\nimport type { ModuleFromNodeConfig } from './ModuleFromNodeConfig.ts'\nimport { useNode } from './useNode.ts'\n\nexport const useWeakModulesFromNode = (\n ids?: ModuleIdentifier[],\n config?: ModuleFromNodeConfig,\n): [WeakRef<ModuleInstance>[] | undefined, Error | undefined] => {\n const [node, nodeError] = useNode(config)\n const logger = config?.logger\n const filterOptions = getModuleFilterOptions()\n const [result, setResult] = useState<WeakRef<ModuleInstance>[] | undefined>()\n const [, error] = usePromise(async () => {\n logger?.debug('useModuleFromNode: resolving')\n const nodeInstance = node\n if (nodeInstance) {\n const refreshModules = async () => {\n const moduleInstances = ids\n ? (await Promise.all(ids.map(id => node.resolve(id, filterOptions)))).filter(exists)\n : await node.resolve('*', filterOptions)\n setResult(moduleInstances.map(mod => new WeakRef(mod)))\n return moduleInstances\n }\n nodeInstance.on('moduleAttached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n nodeInstance.on('moduleDetached', async ({ mod }) => {\n logger?.debug(`useModuleFromNode: moduleDetached [${mod.config.name ?? mod.address}]`)\n await refreshModules()\n })\n return await refreshModules()\n }\n console.log('Result: No Node')\n }, [node, ids])\n return [result, nodeError ?? error]\n}\n","import { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescription, ModuleDescriptionPayload } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { useWeakNode } from './useWeakNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeDescription = (config?: WeakModuleFromNodeConfig | undefined): [ModuleDescription | undefined, Error | undefined] => {\n const [activeNode, nodeError] = useWeakNode(config)\n const [description, error] = usePromise(async () => {\n const state = await activeNode?.deref()?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [activeNode])\n return [description, nodeError ?? error]\n}\n","import type { NodeInstance } from '@xyo-network/node-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\n\nimport { useWeakModuleFromNode } from './useWeakModuleFromNode.ts'\nimport type { WeakModuleFromNodeConfig } from './WeakModuleFromNodeConfig.ts'\n\nexport const useWeakNodeFromNode = (\n nameOrAddressOrInstance?: string | NodeInstance,\n config?: WeakModuleFromNodeConfig,\n): [WeakRef<NodeInstance> | undefined, Error | undefined] => {\n return useWeakModuleFromNode<NodeInstance>(nameOrAddressOrInstance, { identity: isNodeInstance, ...config })\n}\n","import { Close as CloseIcon } from '@mui/icons-material'\nimport type { DrawerProps } from '@mui/material'\nimport {\n ClickAwayListener, Drawer, IconButton,\n} from '@mui/material'\nimport { FlexGrowCol, FlexRow } from '@xylabs/react-flexbox'\nimport { useNodeDrawer } from '@xyo-network/react-node-provider'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { useWeakProvidedNode } from '../hooks/index.ts'\nimport { ModuleDescriptionBox } from './render/index.ts'\n\nexport interface NodeDrawerProps extends PropsWithChildren, Omit<DrawerProps, 'open'> {}\n\nexport const NodeDrawer: React.FC<NodeDrawerProps> = ({ children, ...props }) => {\n const { open, setOpen } = useNodeDrawer()\n const [node] = useWeakProvidedNode()\n\n return (\n <Drawer open={open ?? false} anchor=\"right\" {...props}>\n <ClickAwayListener onClickAway={() => setOpen?.(false)}>\n <FlexGrowCol role=\"presentation\" justifyContent=\"start\" p={2} rowGap={2} minWidth=\"33vw\">\n <FlexRow alignContent=\"start\" justifyContent=\"start\" width=\"100%\">\n <IconButton onClick={() => setOpen?.(false)}>\n <CloseIcon />\n </IconButton>\n </FlexRow>\n <ModuleDescriptionBox mod={node} />\n {children}\n </FlexGrowCol>\n </ClickAwayListener>\n </Drawer>\n )\n}\n","import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport { styled, Typography } from '@mui/material'\nimport { SimpleTreeView } from '@mui/x-tree-view'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport React, { useRef } from 'react'\n\nimport { RenderModule } from './RenderModule.tsx'\n\nexport interface ModuleDescriptionProps extends FlexBoxProps {\n mod?: WeakRef<ModuleInstance> | null\n}\nexport const ModuleDescriptionBox: React.FC<ModuleDescriptionProps> = ({ mod }) => {\n const idRef = useRef<{ idIncrementor: number; ids: string[] }>({ idIncrementor: 0, ids: [] })\n\n return (\n <>\n {mod\n ? (\n <>\n <Typography variant=\"h4\">Node Configuration</Typography>\n <StyledTreeView\n aria-label=\"file system navigator\"\n slots={{ collapseIcon: ExpandMoreIcon, expandIcon: ChevronRightIcon }}\n sx={{ flexGrow: 1 }}\n >\n <RenderModule mod={mod} idRef={idRef} />\n </StyledTreeView>\n </>\n )\n : mod === null\n ? <Typography variant=\"h4\">Node loading...</Typography>\n : <Typography variant=\"h4\">Node not found</Typography>}\n </>\n )\n}\n\nconst StyledTreeView = styled(SimpleTreeView, { name: 'StyledTreeView' })(() => ({\n height: 'auto',\n maxWidth: 'auto',\n}))\n","import { styled } from '@mui/material'\nimport { TreeItem } from '@mui/x-tree-view'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport type { RefObject } from 'react'\nimport React, { useState } from 'react'\n\ninterface RenderModuleProps {\n idRef: RefObject<{\n idIncrementor: number\n ids: string[]\n }>\n mod: WeakRef<ModuleInstance>\n}\n\nexport const RenderModule: React.FC<RenderModuleProps> = ({ mod, idRef }) => {\n const [childModules, setChildModules] = useState<WeakRef<ModuleInstance>[]>()\n\n useAsyncEffect(\n\n async (mounted) => {\n const moduleInstance = mod.deref()\n const { address } = moduleInstance ?? {}\n if (moduleInstance) {\n const children = (await moduleInstance.resolve('*')).filter(childModule => childModule.address !== address)\n if (mounted()) {\n setChildModules(children.map(childModule => new WeakRef(childModule)))\n }\n }\n },\n [mod],\n )\n\n const increment = () => {\n const newId = (idRef.current.idIncrementor++).toString()\n idRef.current.ids.push(newId)\n return newId\n }\n\n const moduleInstance = mod.deref()\n const { queries, address } = moduleInstance ?? {}\n\n return (\n <StyledAddressTreeItem itemId={increment()} label={`address: ${address}`}>\n {queries?.map((query, index) => {\n return <TreeItem key={query} itemId={increment()} label={`query : ${query}`} sx={{ mb: index === queries.length - 1 ? 1.5 : 0.5 }} />\n })}\n {childModules && childModules.length > 0\n ? (\n <TreeItem itemId={increment()} label=\"children\" sx={{ mb: 0.5 }}>\n {childModules.map((childModuleRef) => {\n const childModule = childModuleRef.deref()\n return childModule ? <RenderModule key={childModule?.address} mod={childModuleRef} idRef={idRef} /> : null\n })}\n </TreeItem>\n )\n : null}\n </StyledAddressTreeItem>\n )\n}\n\nconst StyledAddressTreeItem = styled(TreeItem, { name: 'StyledAddressTreeItem' })(({ theme }) => (\n { '& .MuiTreeItem-content': { marginBottom: theme.spacing(0.25) } }\n))\n","export * from './components/index.ts'\nexport * from './hooks/index.ts'\nexport * from '@xyo-network/react-node-context'\nexport * from '@xyo-network/react-node-provider'\n"],"mappings":"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","names":["React","FlexCol","React","getModuleFilterOptions","config","direction","identity","maxDepth","getWeakModuleFilterOptions","config","direction","identity","maxDepth","getModuleFromNodeConfigLogger","config","logger","NodeContext","use","useProvidedNode","node","use","NodeContext","NodeContext","use","useMemo","useWeakProvidedNode","node","use","NodeContext","weakNode","useMemo","WeakRef","usePromise","isModuleInstance","useState","usePromise","asNodeInstance","useMemo","useNodeConfigNodeField","config","nodeAddress","useMemo","node","undefined","nodeInstance","useNode","config","nodeAddress","nodeInstance","useNodeConfigNodeField","providedNode","useProvidedNode","nodeAddressNode","error","usePromise","asNodeInstance","resolve","undefined","useModuleFromNode","nameOrAddressOrInstance","undefined","config","node","nodeError","useNode","logger","getModuleFromNodeConfigLogger","filterOptions","getModuleFilterOptions","result","setResult","useState","error","usePromise","debug","identity","isModuleInstance","on","mod","name","address","resolve","usePromise","exists","useState","useModulesFromNode","ids","config","node","nodeError","useNode","logger","filterOptions","getModuleFilterOptions","result","setResult","useState","error","usePromise","debug","refreshModules","moduleInstances","Promise","all","map","id","resolve","filter","exists","on","mod","name","address","console","log","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","useNodeDescription","config","activeNode","nodeError","useNode","description","error","usePromise","state","find","isPayloadOfSchemaType","ModuleDescriptionSchema","asNodeInstance","useNodeFromNode","nameOrAddressOrInstance","config","mod","error","useModuleFromNode","instance","asNodeInstance","Error","schema","name","address","console","message","undefined","isNodeInstance","useNodesFromNode","ids","config","modules","error","useModulesFromNode","reduce","prev","mod","isNodeInstance","push","undefined","usePromise","isModuleInstance","useState","usePromise","isDefined","asNodeInstance","useMemo","useWeakNodeConfigNodeField","config","nodeAddress","useMemo","node","undefined","nodeInstance","useWeakNode","config","nodeAddress","nodeInstance","useWeakNodeConfigNodeField","providedNode","useWeakProvidedNode","nodeAddressNode","error","usePromise","providedNodeInstance","deref","isDefined","WeakRef","asNodeInstance","resolve","required","undefined","getWeakModuleFromNodeConfigLogger","config","logger","useWeakModuleFromNode","nameOrAddressOrInstance","undefined","config","node","nodeError","useWeakNode","logger","getWeakModuleFromNodeConfigLogger","filterOptions","getWeakModuleFilterOptions","result","setResult","useState","error","usePromise","debug","identity","isModuleInstance","nodeInstance","deref","on","mod","name","address","WeakRef","resolve","usePromise","exists","useState","useWeakModulesFromNode","ids","config","node","nodeError","useNode","logger","filterOptions","getModuleFilterOptions","result","setResult","useState","error","usePromise","debug","nodeInstance","refreshModules","moduleInstances","Promise","all","map","id","resolve","filter","exists","mod","WeakRef","on","name","address","console","log","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","useWeakNodeDescription","config","activeNode","nodeError","useWeakNode","description","error","usePromise","state","deref","find","isPayloadOfSchemaType","ModuleDescriptionSchema","isNodeInstance","useWeakNodeFromNode","nameOrAddressOrInstance","config","useWeakModuleFromNode","identity","isNodeInstance","NodeDescriptionBox","node","props","description","error","useWeakNodeDescription","FlexCol","code","color","undefined","message","JSON","stringify","NodeBox","variant","props","React","NodeDescriptionBox","Close","CloseIcon","ClickAwayListener","Drawer","IconButton","FlexGrowCol","FlexRow","useNodeDrawer","React","ChevronRight","ChevronRightIcon","ExpandMore","ExpandMoreIcon","styled","Typography","SimpleTreeView","React","useRef","styled","TreeItem","useAsyncEffect","React","useState","RenderModule","mod","idRef","childModules","setChildModules","useState","useAsyncEffect","mounted","moduleInstance","deref","address","children","resolve","filter","childModule","map","WeakRef","increment","newId","current","idIncrementor","toString","ids","push","queries","React","StyledAddressTreeItem","itemId","label","query","index","TreeItem","key","sx","mb","length","childModuleRef","styled","name","theme","marginBottom","spacing","ModuleDescriptionBox","mod","idRef","useRef","idIncrementor","ids","React","Typography","variant","StyledTreeView","aria-label","slots","collapseIcon","ExpandMoreIcon","expandIcon","ChevronRightIcon","sx","flexGrow","RenderModule","styled","SimpleTreeView","name","height","maxWidth","NodeDrawer","children","props","open","setOpen","useNodeDrawer","node","useWeakProvidedNode","React","Drawer","anchor","ClickAwayListener","onClickAway","FlexGrowCol","role","justifyContent","p","rowGap","minWidth","FlexRow","alignContent","width","IconButton","onClick","CloseIcon","ModuleDescriptionBox","mod"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-node",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.5.1",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -43,51 +43,51 @@
|
|
|
43
43
|
"src"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@mui/x-tree-view": "~8.
|
|
47
|
-
"@xylabs/
|
|
48
|
-
"@xylabs/
|
|
49
|
-
"@xylabs/react-
|
|
50
|
-
"@xylabs/
|
|
51
|
-
"@
|
|
52
|
-
"@
|
|
53
|
-
"@xyo-network/
|
|
54
|
-
"@xyo-network/
|
|
55
|
-
"@xyo-network/node-
|
|
56
|
-
"@xyo-network/
|
|
57
|
-
"@xyo-network/react-node-context": "^7.4.2",
|
|
58
|
-
"@xyo-network/react-node-provider": "^7.4.2"
|
|
46
|
+
"@mui/x-tree-view": "~8.26.0",
|
|
47
|
+
"@xylabs/react-async-effect": "~7.1.12",
|
|
48
|
+
"@xylabs/react-flexbox": "~7.1.12",
|
|
49
|
+
"@xylabs/react-promise": "~7.1.12",
|
|
50
|
+
"@xylabs/sdk-js": "~5.0.64",
|
|
51
|
+
"@xyo-network/module-abstract": "~5.3.2",
|
|
52
|
+
"@xyo-network/module-model": "~5.3.2",
|
|
53
|
+
"@xyo-network/node-model": "~5.3.2",
|
|
54
|
+
"@xyo-network/payload-model": "~5.3.2",
|
|
55
|
+
"@xyo-network/react-node-context": "7.5.1",
|
|
56
|
+
"@xyo-network/react-node-provider": "7.5.1"
|
|
59
57
|
},
|
|
60
58
|
"devDependencies": {
|
|
61
59
|
"@emotion/react": "~11.14.0",
|
|
62
60
|
"@emotion/styled": "~11.14.1",
|
|
63
|
-
"@mui/icons-material": "~7.3.
|
|
64
|
-
"@mui/material": "~7.3.
|
|
65
|
-
"@mui/system": "~7.3.
|
|
66
|
-
"@storybook/react-vite": "~10.1
|
|
67
|
-
"@types/react": "^19.2.
|
|
68
|
-
"@xylabs/
|
|
69
|
-
"@xylabs/ts-scripts-yarn3": "~7.2
|
|
70
|
-
"@xylabs/tsconfig": "~7.2
|
|
71
|
-
"@xylabs/tsconfig-dom": "~7.2
|
|
72
|
-
"@xylabs/tsconfig-react": "~7.2
|
|
73
|
-
"@xyo-network/node-memory": "~5.2
|
|
74
|
-
"@xyo-network/payload-model": "~5.2
|
|
75
|
-
"@xyo-network/react-storybook": "
|
|
76
|
-
"@xyo-network/react-wallet": "
|
|
77
|
-
"react": "^19.2.
|
|
78
|
-
"react-dom": "^19.2.
|
|
79
|
-
"storybook": "~10.1
|
|
61
|
+
"@mui/icons-material": "~7.3.7",
|
|
62
|
+
"@mui/material": "~7.3.7",
|
|
63
|
+
"@mui/system": "~7.3.7",
|
|
64
|
+
"@storybook/react-vite": "~10.2.1",
|
|
65
|
+
"@types/react": "^19.2.10",
|
|
66
|
+
"@xylabs/sdk-js": "~5.0.64",
|
|
67
|
+
"@xylabs/ts-scripts-yarn3": "~7.3.2",
|
|
68
|
+
"@xylabs/tsconfig": "~7.3.2",
|
|
69
|
+
"@xylabs/tsconfig-dom": "~7.3.2",
|
|
70
|
+
"@xylabs/tsconfig-react": "~7.3.2",
|
|
71
|
+
"@xyo-network/node-memory": "~5.3.2",
|
|
72
|
+
"@xyo-network/payload-model": "~5.3.2",
|
|
73
|
+
"@xyo-network/react-storybook": "7.5.1",
|
|
74
|
+
"@xyo-network/react-wallet": "7.5.1",
|
|
75
|
+
"react": "^19.2.4",
|
|
76
|
+
"react-dom": "^19.2.4",
|
|
77
|
+
"storybook": "~10.2.1",
|
|
80
78
|
"typescript": "^5.9.3",
|
|
81
|
-
"vite": "~7.
|
|
79
|
+
"vite": "~7.3.1",
|
|
80
|
+
"zod": "^4.3.6"
|
|
82
81
|
},
|
|
83
82
|
"peerDependencies": {
|
|
84
83
|
"@mui/icons-material": ">=6 <8",
|
|
85
84
|
"@mui/material": ">=6 <8",
|
|
86
85
|
"react": "^19",
|
|
87
|
-
"react-dom": "^19"
|
|
86
|
+
"react-dom": "^19",
|
|
87
|
+
"zod": "^4"
|
|
88
88
|
},
|
|
89
89
|
"publishConfig": {
|
|
90
90
|
"access": "public"
|
|
91
91
|
},
|
|
92
92
|
"docs": "dist/docs.json"
|
|
93
|
-
}
|
|
93
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { exists } from '@xylabs/exists'
|
|
2
1
|
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
|
3
2
|
import { FlexCol } from '@xylabs/react-flexbox'
|
|
3
|
+
import { exists } from '@xylabs/sdk-js'
|
|
4
4
|
import type { NodeInstance } from '@xyo-network/node-model'
|
|
5
5
|
import React from 'react'
|
|
6
6
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { AbstractModuleInstance } from '@xyo-network/module-abstract'
|
|
2
2
|
import type { ModuleConfig, ModuleParams } from '@xyo-network/module-model'
|
|
3
|
-
import
|
|
3
|
+
import {
|
|
4
|
+
asSchema, type Query, type Schema,
|
|
5
|
+
} from '@xyo-network/payload-model'
|
|
4
6
|
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
+
export const TestModuleConfigSchema = asSchema('network.xyo.test.module', true)
|
|
8
|
+
export type TestModuleConfigSchema = typeof TestModuleConfigSchema
|
|
7
9
|
|
|
8
10
|
export class TestModule extends AbstractModuleInstance<ModuleParams<ModuleConfig<{ schema: TestModuleConfigSchema }>>> {
|
|
9
11
|
static override readonly configSchemas: Schema[] = [...super.configSchemas, TestModuleConfigSchema]
|
|
@@ -2,11 +2,11 @@ import { styled } from '@mui/material'
|
|
|
2
2
|
import { TreeItem } from '@mui/x-tree-view'
|
|
3
3
|
import { useAsyncEffect } from '@xylabs/react-async-effect'
|
|
4
4
|
import type { ModuleInstance } from '@xyo-network/module-model'
|
|
5
|
-
import type {
|
|
5
|
+
import type { RefObject } from 'react'
|
|
6
6
|
import React, { useState } from 'react'
|
|
7
7
|
|
|
8
8
|
interface RenderModuleProps {
|
|
9
|
-
idRef:
|
|
9
|
+
idRef: RefObject<{
|
|
10
10
|
idIncrementor: number
|
|
11
11
|
ids: string[]
|
|
12
12
|
}>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TypeCheck } from '@xylabs/object'
|
|
2
1
|
import { usePromise } from '@xylabs/react-promise'
|
|
2
|
+
import type { TypeCheck } from '@xylabs/sdk-js'
|
|
3
3
|
import type { ModuleInstance } from '@xyo-network/module-model'
|
|
4
4
|
import { isModuleInstance } from '@xyo-network/module-model'
|
|
5
5
|
import { useState } from 'react'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TypeCheck } from '@xylabs/object'
|
|
2
1
|
import { usePromise } from '@xylabs/react-promise'
|
|
2
|
+
import type { TypeCheck } from '@xylabs/sdk-js'
|
|
3
3
|
import type { ModuleInstance } from '@xyo-network/module-model'
|
|
4
4
|
import { isModuleInstance } from '@xyo-network/module-model'
|
|
5
5
|
import { useState } from 'react'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { exists } from '@xylabs/exists'
|
|
2
1
|
import { usePromise } from '@xylabs/react-promise'
|
|
2
|
+
import { exists } from '@xylabs/sdk-js'
|
|
3
3
|
import type { ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'
|
|
4
4
|
import { useState } from 'react'
|
|
5
5
|
|
|
@@ -37,7 +37,6 @@ export const useWeakModulesFromNode = (
|
|
|
37
37
|
return await refreshModules()
|
|
38
38
|
}
|
|
39
39
|
console.log('Result: No Node')
|
|
40
|
-
return
|
|
41
40
|
}, [node, ids])
|
|
42
41
|
return [result, nodeError ?? error]
|
|
43
42
|
}
|
package/src/hooks/useWeakNode.ts
CHANGED