@xyo-network/react-node 7.5.7 → 7.5.11
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/render/ModuleDescriptionBox.d.ts.map +1 -1
- package/dist/browser/components/render/RenderModule.d.ts +0 -5
- package/dist/browser/components/render/RenderModule.d.ts.map +1 -1
- package/dist/browser/hooks/getModuleFilterOptions.d.ts +1 -1
- package/dist/browser/hooks/getWeakModuleFilterOptions.d.ts +1 -1
- package/dist/browser/index.mjs +156 -282
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +121 -42
- package/src/components/Node.stories.tsx +0 -67
- package/src/components/Node.tsx +0 -20
- package/src/components/NodeDescriptionBox.tsx +0 -20
- package/src/components/NodeDrawer.stories.tsx +0 -45
- package/src/components/NodeDrawer.tsx +0 -35
- package/src/components/NodeModulesBox.tsx +0 -23
- package/src/components/TestModule.ts +0 -20
- package/src/components/index.ts +0 -2
- package/src/components/render/ModuleDescriptionBox.tsx +0 -41
- package/src/components/render/RenderModule.tsx +0 -64
- package/src/components/render/index.ts +0 -2
- package/src/hooks/ModuleFromNodeConfig.ts +0 -12
- package/src/hooks/WeakModuleFromNodeConfig.ts +0 -12
- package/src/hooks/getModuleFilterOptions.ts +0 -10
- package/src/hooks/getWeakModuleFilterOptions.ts +0 -10
- package/src/hooks/index.ts +0 -17
- package/src/hooks/provided/index.ts +0 -2
- package/src/hooks/provided/useProvidedNode.tsx +0 -8
- package/src/hooks/provided/useWeakProvidedNode.tsx +0 -9
- package/src/hooks/useModuleFromNode.ts +0 -51
- package/src/hooks/useModulesFromNode.ts +0 -39
- package/src/hooks/useNode.ts +0 -18
- package/src/hooks/useNodeConfigNodeField.ts +0 -10
- package/src/hooks/useNodeDescription.ts +0 -16
- package/src/hooks/useNodeFromNode.tsx +0 -20
- package/src/hooks/useNodesFromNode.tsx +0 -26
- package/src/hooks/useWeakModuleFromNode.ts +0 -51
- package/src/hooks/useWeakModulesFromNode.ts +0 -42
- package/src/hooks/useWeakNode.ts +0 -20
- package/src/hooks/useWeakNodeConfigNodeField.ts +0 -12
- package/src/hooks/useWeakNodeDescription.ts +0 -16
- package/src/hooks/useWeakNodeFromNode.tsx +0 -12
- package/src/hooks/useWeakNodesFromNode.tsx +0 -26
- package/src/index.ts +0 -4
package/dist/browser/index.mjs
CHANGED
|
@@ -1,60 +1,55 @@
|
|
|
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
|
-
|
|
7
1
|
// src/components/NodeDescriptionBox.tsx
|
|
8
2
|
import { FlexCol } from "@xylabs/react-flexbox";
|
|
9
|
-
import React from "react";
|
|
10
3
|
|
|
11
4
|
// src/hooks/getModuleFilterOptions.ts
|
|
12
|
-
var getModuleFilterOptions =
|
|
13
|
-
const {
|
|
5
|
+
var getModuleFilterOptions = (config) => {
|
|
6
|
+
const {
|
|
7
|
+
direction,
|
|
8
|
+
identity,
|
|
9
|
+
maxDepth
|
|
10
|
+
} = config ?? {};
|
|
14
11
|
return {
|
|
15
12
|
direction,
|
|
16
13
|
identity,
|
|
17
14
|
maxDepth
|
|
18
15
|
};
|
|
19
|
-
}
|
|
16
|
+
};
|
|
20
17
|
|
|
21
18
|
// src/hooks/getWeakModuleFilterOptions.ts
|
|
22
|
-
var getWeakModuleFilterOptions =
|
|
23
|
-
const {
|
|
19
|
+
var getWeakModuleFilterOptions = (config) => {
|
|
20
|
+
const {
|
|
21
|
+
direction,
|
|
22
|
+
identity,
|
|
23
|
+
maxDepth
|
|
24
|
+
} = config ?? {};
|
|
24
25
|
return {
|
|
25
26
|
direction,
|
|
26
27
|
identity,
|
|
27
28
|
maxDepth
|
|
28
29
|
};
|
|
29
|
-
}
|
|
30
|
+
};
|
|
30
31
|
|
|
31
32
|
// src/hooks/ModuleFromNodeConfig.ts
|
|
32
|
-
var getModuleFromNodeConfigLogger =
|
|
33
|
+
var getModuleFromNodeConfigLogger = (config) => {
|
|
33
34
|
return config?.logger;
|
|
34
|
-
}
|
|
35
|
+
};
|
|
35
36
|
|
|
36
37
|
// src/hooks/provided/useProvidedNode.tsx
|
|
37
38
|
import { NodeContext } from "@xyo-network/react-node-context";
|
|
38
39
|
import { use } from "react";
|
|
39
|
-
var useProvidedNode =
|
|
40
|
+
var useProvidedNode = () => {
|
|
40
41
|
const { node } = use(NodeContext);
|
|
41
|
-
return [
|
|
42
|
-
|
|
43
|
-
];
|
|
44
|
-
}, "useProvidedNode");
|
|
42
|
+
return [node];
|
|
43
|
+
};
|
|
45
44
|
|
|
46
45
|
// src/hooks/provided/useWeakProvidedNode.tsx
|
|
47
46
|
import { NodeContext as NodeContext2 } from "@xyo-network/react-node-context";
|
|
48
47
|
import { use as use2, useMemo } from "react";
|
|
49
|
-
var useWeakProvidedNode =
|
|
48
|
+
var useWeakProvidedNode = () => {
|
|
50
49
|
const { node } = use2(NodeContext2);
|
|
51
|
-
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return [
|
|
55
|
-
weakNode
|
|
56
|
-
];
|
|
57
|
-
}, "useWeakProvidedNode");
|
|
50
|
+
const weakNode = useMemo(() => node ? new WeakRef(node) : null, [node]);
|
|
51
|
+
return [weakNode];
|
|
52
|
+
};
|
|
58
53
|
|
|
59
54
|
// src/hooks/useModuleFromNode.ts
|
|
60
55
|
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
@@ -67,39 +62,26 @@ import { asNodeInstance } from "@xyo-network/node-model";
|
|
|
67
62
|
|
|
68
63
|
// src/hooks/useNodeConfigNodeField.ts
|
|
69
64
|
import { useMemo as useMemo2 } from "react";
|
|
70
|
-
var useNodeConfigNodeField =
|
|
71
|
-
const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
72
|
-
|
|
73
|
-
]
|
|
74
|
-
|
|
75
|
-
config?.node
|
|
76
|
-
]);
|
|
77
|
-
return [
|
|
78
|
-
nodeAddress,
|
|
79
|
-
nodeInstance
|
|
80
|
-
];
|
|
81
|
-
}, "useNodeConfigNodeField");
|
|
65
|
+
var useNodeConfigNodeField = (config) => {
|
|
66
|
+
const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
|
|
67
|
+
const nodeInstance = useMemo2(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
|
|
68
|
+
return [nodeAddress, nodeInstance];
|
|
69
|
+
};
|
|
82
70
|
|
|
83
71
|
// src/hooks/useNode.ts
|
|
84
|
-
var useNode =
|
|
72
|
+
var useNode = (config) => {
|
|
85
73
|
const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config);
|
|
86
74
|
const [providedNode] = useProvidedNode();
|
|
87
75
|
const [nodeAddressNode, error] = usePromise(async () => {
|
|
88
76
|
if (providedNode && nodeAddress) {
|
|
89
77
|
return asNodeInstance(await providedNode.resolve(nodeAddress), "Module is not a node");
|
|
90
78
|
}
|
|
91
|
-
}, [
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
]);
|
|
95
|
-
return [
|
|
96
|
-
nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
|
|
97
|
-
error
|
|
98
|
-
];
|
|
99
|
-
}, "useNode");
|
|
79
|
+
}, [providedNode, nodeAddress]);
|
|
80
|
+
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
81
|
+
};
|
|
100
82
|
|
|
101
83
|
// src/hooks/useModuleFromNode.ts
|
|
102
|
-
var useModuleFromNode =
|
|
84
|
+
var useModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
103
85
|
const [node, nodeError] = useNode(config);
|
|
104
86
|
const logger = getModuleFromNodeConfigLogger(config);
|
|
105
87
|
const filterOptions = getModuleFilterOptions(config);
|
|
@@ -130,21 +112,15 @@ var useModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = void 0
|
|
|
130
112
|
return result;
|
|
131
113
|
}
|
|
132
114
|
logger?.debug("Result: No Node");
|
|
133
|
-
}, [
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
]);
|
|
137
|
-
return [
|
|
138
|
-
result,
|
|
139
|
-
nodeError ?? error
|
|
140
|
-
];
|
|
141
|
-
}, "useModuleFromNode");
|
|
115
|
+
}, [node, nameOrAddressOrInstance]);
|
|
116
|
+
return [result, nodeError ?? error];
|
|
117
|
+
};
|
|
142
118
|
|
|
143
119
|
// src/hooks/useModulesFromNode.ts
|
|
144
120
|
import { usePromise as usePromise3 } from "@xylabs/react-promise";
|
|
145
121
|
import { exists } from "@xylabs/sdk-js";
|
|
146
122
|
import { useState as useState2 } from "react";
|
|
147
|
-
var useModulesFromNode =
|
|
123
|
+
var useModulesFromNode = (ids, config) => {
|
|
148
124
|
const [node, nodeError] = useNode(config);
|
|
149
125
|
const logger = config?.logger;
|
|
150
126
|
const filterOptions = getModuleFilterOptions();
|
|
@@ -152,11 +128,11 @@ var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
152
128
|
const [, error] = usePromise3(async () => {
|
|
153
129
|
logger?.debug("useModuleFromNode: resolving");
|
|
154
130
|
if (node) {
|
|
155
|
-
const refreshModules =
|
|
131
|
+
const refreshModules = async () => {
|
|
156
132
|
const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists) : await node.resolve("*", filterOptions);
|
|
157
133
|
setResult(moduleInstances);
|
|
158
134
|
return moduleInstances;
|
|
159
|
-
}
|
|
135
|
+
};
|
|
160
136
|
node.on("moduleAttached", async ({ mod }) => {
|
|
161
137
|
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
162
138
|
await refreshModules();
|
|
@@ -168,62 +144,42 @@ var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
168
144
|
return await refreshModules();
|
|
169
145
|
}
|
|
170
146
|
console.log("Result: No Node");
|
|
171
|
-
}, [
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
]);
|
|
175
|
-
return [
|
|
176
|
-
result,
|
|
177
|
-
nodeError ?? error
|
|
178
|
-
];
|
|
179
|
-
}, "useModulesFromNode");
|
|
147
|
+
}, [node, ids]);
|
|
148
|
+
return [result, nodeError ?? error];
|
|
149
|
+
};
|
|
180
150
|
|
|
181
151
|
// src/hooks/useNodeDescription.ts
|
|
182
152
|
import { usePromise as usePromise4 } from "@xylabs/react-promise";
|
|
183
153
|
import { ModuleDescriptionSchema } from "@xyo-network/module-model";
|
|
184
154
|
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
185
|
-
var useNodeDescription =
|
|
155
|
+
var useNodeDescription = (config) => {
|
|
186
156
|
const [activeNode, nodeError] = useNode(config);
|
|
187
157
|
const [description, error] = usePromise4(async () => {
|
|
188
158
|
const state = await activeNode?.state();
|
|
189
159
|
return state?.find(isPayloadOfSchemaType(ModuleDescriptionSchema));
|
|
190
|
-
}, [
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
return [
|
|
194
|
-
description,
|
|
195
|
-
nodeError ?? error
|
|
196
|
-
];
|
|
197
|
-
}, "useNodeDescription");
|
|
160
|
+
}, [activeNode]);
|
|
161
|
+
return [description, nodeError ?? error];
|
|
162
|
+
};
|
|
198
163
|
|
|
199
164
|
// src/hooks/useNodeFromNode.tsx
|
|
200
165
|
import { asNodeInstance as asNodeInstance2 } from "@xyo-network/node-model";
|
|
201
|
-
var useNodeFromNode =
|
|
166
|
+
var useNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
202
167
|
const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config);
|
|
203
168
|
const instance = asNodeInstance2(mod);
|
|
204
169
|
if (mod && !instance) {
|
|
205
170
|
const error2 = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
|
|
206
171
|
console.error(error2.message);
|
|
207
|
-
return [
|
|
208
|
-
void 0,
|
|
209
|
-
error2
|
|
210
|
-
];
|
|
172
|
+
return [void 0, error2];
|
|
211
173
|
}
|
|
212
|
-
return [
|
|
213
|
-
|
|
214
|
-
error
|
|
215
|
-
];
|
|
216
|
-
}, "useNodeFromNode");
|
|
174
|
+
return [instance, error];
|
|
175
|
+
};
|
|
217
176
|
|
|
218
177
|
// src/hooks/useNodesFromNode.tsx
|
|
219
178
|
import { isNodeInstance } from "@xyo-network/node-model";
|
|
220
|
-
var useNodesFromNode =
|
|
179
|
+
var useNodesFromNode = (ids, config) => {
|
|
221
180
|
const [modules, error] = useModulesFromNode(ids, config);
|
|
222
181
|
if (error) {
|
|
223
|
-
return [
|
|
224
|
-
null,
|
|
225
|
-
error
|
|
226
|
-
];
|
|
182
|
+
return [null, error];
|
|
227
183
|
}
|
|
228
184
|
return modules ? [
|
|
229
185
|
// eslint-disable-next-line unicorn/no-array-reduce
|
|
@@ -234,11 +190,8 @@ var useNodesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
234
190
|
return prev;
|
|
235
191
|
}, []),
|
|
236
192
|
void 0
|
|
237
|
-
] : [
|
|
238
|
-
|
|
239
|
-
error
|
|
240
|
-
];
|
|
241
|
-
}, "useNodesFromNode");
|
|
193
|
+
] : [modules, error];
|
|
194
|
+
};
|
|
242
195
|
|
|
243
196
|
// src/hooks/useWeakModuleFromNode.ts
|
|
244
197
|
import { usePromise as usePromise6 } from "@xylabs/react-promise";
|
|
@@ -252,47 +205,32 @@ import { asNodeInstance as asNodeInstance3 } from "@xyo-network/node-model";
|
|
|
252
205
|
|
|
253
206
|
// src/hooks/useWeakNodeConfigNodeField.ts
|
|
254
207
|
import { useMemo as useMemo3 } from "react";
|
|
255
|
-
var useWeakNodeConfigNodeField =
|
|
256
|
-
const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [
|
|
257
|
-
|
|
258
|
-
]
|
|
259
|
-
|
|
260
|
-
config?.node
|
|
261
|
-
]);
|
|
262
|
-
return [
|
|
263
|
-
nodeAddress,
|
|
264
|
-
nodeInstance
|
|
265
|
-
];
|
|
266
|
-
}, "useWeakNodeConfigNodeField");
|
|
208
|
+
var useWeakNodeConfigNodeField = (config) => {
|
|
209
|
+
const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
|
|
210
|
+
const nodeInstance = useMemo3(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
|
|
211
|
+
return [nodeAddress, nodeInstance];
|
|
212
|
+
};
|
|
267
213
|
|
|
268
214
|
// src/hooks/useWeakNode.ts
|
|
269
|
-
var useWeakNode =
|
|
215
|
+
var useWeakNode = (config) => {
|
|
270
216
|
const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config);
|
|
271
217
|
const [providedNode] = useWeakProvidedNode();
|
|
272
218
|
const [nodeAddressNode, error] = usePromise5(async () => {
|
|
273
219
|
const providedNodeInstance = providedNode?.deref();
|
|
274
220
|
if (providedNodeInstance && isDefined(nodeAddress)) {
|
|
275
|
-
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", {
|
|
276
|
-
required: true
|
|
277
|
-
}));
|
|
221
|
+
return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", { required: true }));
|
|
278
222
|
}
|
|
279
|
-
}, [
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
]);
|
|
283
|
-
return [
|
|
284
|
-
nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
|
|
285
|
-
error
|
|
286
|
-
];
|
|
287
|
-
}, "useWeakNode");
|
|
223
|
+
}, [providedNode, nodeAddress]);
|
|
224
|
+
return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
|
|
225
|
+
};
|
|
288
226
|
|
|
289
227
|
// src/hooks/WeakModuleFromNodeConfig.ts
|
|
290
|
-
var getWeakModuleFromNodeConfigLogger =
|
|
228
|
+
var getWeakModuleFromNodeConfigLogger = (config) => {
|
|
291
229
|
return config?.logger;
|
|
292
|
-
}
|
|
230
|
+
};
|
|
293
231
|
|
|
294
232
|
// src/hooks/useWeakModuleFromNode.ts
|
|
295
|
-
var useWeakModuleFromNode =
|
|
233
|
+
var useWeakModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
|
|
296
234
|
const [node, nodeError] = useWeakNode(config);
|
|
297
235
|
const logger = getWeakModuleFromNodeConfigLogger(config);
|
|
298
236
|
const filterOptions = getWeakModuleFilterOptions(config);
|
|
@@ -324,21 +262,15 @@ var useWeakModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = vo
|
|
|
324
262
|
return result;
|
|
325
263
|
}
|
|
326
264
|
logger?.debug("Result: No Node");
|
|
327
|
-
}, [
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
]);
|
|
331
|
-
return [
|
|
332
|
-
result,
|
|
333
|
-
nodeError ?? error
|
|
334
|
-
];
|
|
335
|
-
}, "useWeakModuleFromNode");
|
|
265
|
+
}, [node, nameOrAddressOrInstance]);
|
|
266
|
+
return [result, nodeError ?? error];
|
|
267
|
+
};
|
|
336
268
|
|
|
337
269
|
// src/hooks/useWeakModulesFromNode.ts
|
|
338
270
|
import { usePromise as usePromise7 } from "@xylabs/react-promise";
|
|
339
271
|
import { exists as exists2 } from "@xylabs/sdk-js";
|
|
340
272
|
import { useState as useState4 } from "react";
|
|
341
|
-
var useWeakModulesFromNode =
|
|
273
|
+
var useWeakModulesFromNode = (ids, config) => {
|
|
342
274
|
const [node, nodeError] = useNode(config);
|
|
343
275
|
const logger = config?.logger;
|
|
344
276
|
const filterOptions = getModuleFilterOptions();
|
|
@@ -347,11 +279,11 @@ var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
347
279
|
logger?.debug("useModuleFromNode: resolving");
|
|
348
280
|
const nodeInstance = node;
|
|
349
281
|
if (nodeInstance) {
|
|
350
|
-
const refreshModules =
|
|
282
|
+
const refreshModules = async () => {
|
|
351
283
|
const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists2) : await node.resolve("*", filterOptions);
|
|
352
284
|
setResult(moduleInstances.map((mod) => new WeakRef(mod)));
|
|
353
285
|
return moduleInstances;
|
|
354
|
-
}
|
|
286
|
+
};
|
|
355
287
|
nodeInstance.on("moduleAttached", async ({ mod }) => {
|
|
356
288
|
logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
|
|
357
289
|
await refreshModules();
|
|
@@ -363,197 +295,139 @@ var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
|
|
|
363
295
|
return await refreshModules();
|
|
364
296
|
}
|
|
365
297
|
console.log("Result: No Node");
|
|
366
|
-
}, [
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
]);
|
|
370
|
-
return [
|
|
371
|
-
result,
|
|
372
|
-
nodeError ?? error
|
|
373
|
-
];
|
|
374
|
-
}, "useWeakModulesFromNode");
|
|
298
|
+
}, [node, ids]);
|
|
299
|
+
return [result, nodeError ?? error];
|
|
300
|
+
};
|
|
375
301
|
|
|
376
302
|
// src/hooks/useWeakNodeDescription.ts
|
|
377
303
|
import { usePromise as usePromise8 } from "@xylabs/react-promise";
|
|
378
304
|
import { ModuleDescriptionSchema as ModuleDescriptionSchema2 } from "@xyo-network/module-model";
|
|
379
305
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
380
|
-
var useWeakNodeDescription =
|
|
306
|
+
var useWeakNodeDescription = (config) => {
|
|
381
307
|
const [activeNode, nodeError] = useWeakNode(config);
|
|
382
308
|
const [description, error] = usePromise8(async () => {
|
|
383
309
|
const state = await activeNode?.deref()?.state();
|
|
384
310
|
return state?.find(isPayloadOfSchemaType2(ModuleDescriptionSchema2));
|
|
385
|
-
}, [
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
return [
|
|
389
|
-
description,
|
|
390
|
-
nodeError ?? error
|
|
391
|
-
];
|
|
392
|
-
}, "useWeakNodeDescription");
|
|
311
|
+
}, [activeNode]);
|
|
312
|
+
return [description, nodeError ?? error];
|
|
313
|
+
};
|
|
393
314
|
|
|
394
315
|
// src/hooks/useWeakNodeFromNode.tsx
|
|
395
316
|
import { isNodeInstance as isNodeInstance2 } from "@xyo-network/node-model";
|
|
396
|
-
var useWeakNodeFromNode =
|
|
397
|
-
return useWeakModuleFromNode(nameOrAddressOrInstance, {
|
|
398
|
-
|
|
399
|
-
...config
|
|
400
|
-
});
|
|
401
|
-
}, "useWeakNodeFromNode");
|
|
317
|
+
var useWeakNodeFromNode = (nameOrAddressOrInstance, config) => {
|
|
318
|
+
return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isNodeInstance2, ...config });
|
|
319
|
+
};
|
|
402
320
|
|
|
403
321
|
// src/components/NodeDescriptionBox.tsx
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
});
|
|
408
|
-
|
|
409
|
-
color: error ? "red" : void 0
|
|
410
|
-
}, error ? error.message : JSON.stringify(description, null, 2)));
|
|
411
|
-
}, "NodeDescriptionBox");
|
|
322
|
+
import { jsx } from "react/jsx-runtime";
|
|
323
|
+
var NodeDescriptionBox = ({ node, ...props }) => {
|
|
324
|
+
const [description, error] = useWeakNodeDescription({ node });
|
|
325
|
+
return /* @__PURE__ */ jsx(FlexCol, { ...props, children: /* @__PURE__ */ jsx("code", { color: error ? "red" : void 0, children: error ? error.message : JSON.stringify(description, null, 2) }) });
|
|
326
|
+
};
|
|
412
327
|
|
|
413
328
|
// src/components/Node.tsx
|
|
414
|
-
|
|
329
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
330
|
+
var NodeBox = ({ variant, ...props }) => {
|
|
415
331
|
switch (variant) {
|
|
416
332
|
// eslint-disable-next-line unicorn/no-useless-switch-case
|
|
417
333
|
case "description":
|
|
418
334
|
default: {
|
|
419
|
-
return /* @__PURE__ */
|
|
335
|
+
return /* @__PURE__ */ jsx2(NodeDescriptionBox, { ...props });
|
|
420
336
|
}
|
|
421
337
|
}
|
|
422
|
-
}
|
|
338
|
+
};
|
|
423
339
|
|
|
424
340
|
// src/components/NodeDrawer.tsx
|
|
425
341
|
import { Close as CloseIcon } from "@mui/icons-material";
|
|
426
|
-
import {
|
|
342
|
+
import {
|
|
343
|
+
ClickAwayListener,
|
|
344
|
+
Drawer,
|
|
345
|
+
IconButton
|
|
346
|
+
} from "@mui/material";
|
|
427
347
|
import { FlexGrowCol, FlexRow } from "@xylabs/react-flexbox";
|
|
428
348
|
import { useNodeDrawer } from "@xyo-network/react-node-provider";
|
|
429
|
-
import React5 from "react";
|
|
430
349
|
|
|
431
350
|
// src/components/render/ModuleDescriptionBox.tsx
|
|
432
351
|
import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from "@mui/icons-material";
|
|
433
352
|
import { styled as styled2, Typography } from "@mui/material";
|
|
434
353
|
import { SimpleTreeView } from "@mui/x-tree-view";
|
|
435
|
-
import React4, { useRef } from "react";
|
|
436
354
|
|
|
437
355
|
// src/components/render/RenderModule.tsx
|
|
438
356
|
import { styled } from "@mui/material";
|
|
439
357
|
import { TreeItem } from "@mui/x-tree-view";
|
|
440
358
|
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
441
|
-
import
|
|
442
|
-
|
|
359
|
+
import { useState as useState5 } from "react";
|
|
360
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
361
|
+
var RenderModule = ({ mod }) => {
|
|
443
362
|
const [childModules, setChildModules] = useState5();
|
|
444
|
-
useAsyncEffect(
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
363
|
+
useAsyncEffect(
|
|
364
|
+
async (mounted) => {
|
|
365
|
+
const moduleInstance2 = mod.deref();
|
|
366
|
+
const { address: address2 } = moduleInstance2 ?? {};
|
|
367
|
+
if (moduleInstance2) {
|
|
368
|
+
const children = (await moduleInstance2.resolve("*")).filter((childModule) => childModule.address !== address2);
|
|
369
|
+
if (mounted()) {
|
|
370
|
+
setChildModules(children.map((childModule) => new WeakRef(childModule)));
|
|
371
|
+
}
|
|
451
372
|
}
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
]);
|
|
456
|
-
const increment = /* @__PURE__ */ __name(() => {
|
|
457
|
-
const newId = (idRef.current.idIncrementor++).toString();
|
|
458
|
-
idRef.current.ids.push(newId);
|
|
459
|
-
return newId;
|
|
460
|
-
}, "increment");
|
|
373
|
+
},
|
|
374
|
+
[mod]
|
|
375
|
+
);
|
|
461
376
|
const moduleInstance = mod.deref();
|
|
462
377
|
const { queries, address } = moduleInstance ?? {};
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
itemId:
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
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
|
-
}));
|
|
378
|
+
const baseId = address ?? "unknown";
|
|
379
|
+
return /* @__PURE__ */ jsxs(StyledAddressTreeItem, { itemId: baseId, label: `address: ${address}`, children: [
|
|
380
|
+
queries?.map((query, index) => {
|
|
381
|
+
return /* @__PURE__ */ jsx3(
|
|
382
|
+
TreeItem,
|
|
383
|
+
{
|
|
384
|
+
itemId: `${baseId}-query-${query}`,
|
|
385
|
+
label: `query : ${query}`,
|
|
386
|
+
sx: { mb: index === queries.length - 1 ? 1.5 : 0.5 }
|
|
387
|
+
},
|
|
388
|
+
query
|
|
389
|
+
);
|
|
390
|
+
}),
|
|
391
|
+
childModules && childModules.length > 0 ? /* @__PURE__ */ jsx3(TreeItem, { itemId: `${baseId}-children`, label: "children", sx: { mb: 0.5 }, children: childModules.map((childModuleRef) => {
|
|
392
|
+
const childModule = childModuleRef.deref();
|
|
393
|
+
return childModule ? /* @__PURE__ */ jsx3(RenderModule, { mod: childModuleRef }, childModule?.address) : null;
|
|
394
|
+
}) }) : null
|
|
395
|
+
] });
|
|
396
|
+
};
|
|
397
|
+
var StyledAddressTreeItem = styled(TreeItem, { name: "StyledAddressTreeItem" })(({ theme }) => ({ "& .MuiTreeItem-content": { marginBottom: theme.spacing(0.25) } }));
|
|
497
398
|
|
|
498
399
|
// src/components/render/ModuleDescriptionBox.tsx
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
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
|
-
})(() => ({
|
|
400
|
+
import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
401
|
+
var ModuleDescriptionBox = ({ mod }) => {
|
|
402
|
+
return /* @__PURE__ */ jsx4(Fragment, { children: mod ? /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
403
|
+
/* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node Configuration" }),
|
|
404
|
+
/* @__PURE__ */ jsx4(
|
|
405
|
+
StyledTreeView,
|
|
406
|
+
{
|
|
407
|
+
"aria-label": "file system navigator",
|
|
408
|
+
slots: { collapseIcon: ExpandMoreIcon, expandIcon: ChevronRightIcon },
|
|
409
|
+
sx: { flexGrow: 1 },
|
|
410
|
+
children: /* @__PURE__ */ jsx4(RenderModule, { mod })
|
|
411
|
+
}
|
|
412
|
+
)
|
|
413
|
+
] }) : mod === null ? /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node loading..." }) : /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node not found" }) });
|
|
414
|
+
};
|
|
415
|
+
var StyledTreeView = styled2(SimpleTreeView, { name: "StyledTreeView" })(() => ({
|
|
527
416
|
height: "auto",
|
|
528
417
|
maxWidth: "auto"
|
|
529
418
|
}));
|
|
530
419
|
|
|
531
420
|
// src/components/NodeDrawer.tsx
|
|
532
|
-
|
|
421
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
422
|
+
var NodeDrawer = ({ children, ...props }) => {
|
|
533
423
|
const { open, setOpen } = useNodeDrawer();
|
|
534
424
|
const [node] = useWeakProvidedNode();
|
|
535
|
-
return /* @__PURE__ */
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
}
|
|
540
|
-
|
|
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");
|
|
425
|
+
return /* @__PURE__ */ jsx5(Drawer, { open: open ?? false, anchor: "right", ...props, children: /* @__PURE__ */ jsx5(ClickAwayListener, { onClickAway: () => setOpen?.(false), children: /* @__PURE__ */ jsxs3(FlexGrowCol, { role: "presentation", justifyContent: "start", p: 2, rowGap: 2, minWidth: "33vw", children: [
|
|
426
|
+
/* @__PURE__ */ jsx5(FlexRow, { alignContent: "start", justifyContent: "start", width: "100%", children: /* @__PURE__ */ jsx5(IconButton, { onClick: () => setOpen?.(false), children: /* @__PURE__ */ jsx5(CloseIcon, {}) }) }),
|
|
427
|
+
/* @__PURE__ */ jsx5(ModuleDescriptionBox, { mod: node }),
|
|
428
|
+
children
|
|
429
|
+
] }) }) });
|
|
430
|
+
};
|
|
557
431
|
|
|
558
432
|
// src/index.ts
|
|
559
433
|
export * from "@xyo-network/react-node-context";
|