@inditextech/weave-react 0.10.3 → 0.12.0
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/react.cjs +18 -3
- package/dist/react.d.cts +2 -0
- package/dist/react.d.ts +2 -0
- package/dist/react.js +18 -3
- package/package.json +2 -2
package/dist/react.cjs
CHANGED
|
@@ -108,6 +108,7 @@ const useWeave = create()((set) => ({
|
|
|
108
108
|
options: []
|
|
109
109
|
},
|
|
110
110
|
selection: {
|
|
111
|
+
active: false,
|
|
111
112
|
nodes: [],
|
|
112
113
|
node: void 0
|
|
113
114
|
},
|
|
@@ -180,6 +181,13 @@ const useWeave = create()((set) => ({
|
|
|
180
181
|
canZoomOut: newCanZoomOut
|
|
181
182
|
}
|
|
182
183
|
})),
|
|
184
|
+
setSelectionActive: (newSelectionActive) => set((state) => ({
|
|
185
|
+
...state,
|
|
186
|
+
selection: {
|
|
187
|
+
...state.selection,
|
|
188
|
+
active: newSelectionActive
|
|
189
|
+
}
|
|
190
|
+
})),
|
|
183
191
|
setSelectedNodes: (newSelectedNodes) => set((state) => ({
|
|
184
192
|
...state,
|
|
185
193
|
selection: {
|
|
@@ -319,12 +327,17 @@ const WeaveProvider = ({ containerId, getUser, store, nodes = [], actions = [],
|
|
|
319
327
|
//#region src/hooks/events.tsx
|
|
320
328
|
const useWeaveEvents = () => {
|
|
321
329
|
const instance = useWeave((state) => state.instance);
|
|
330
|
+
const node = useWeave((state) => state.selection.node);
|
|
322
331
|
const setZoom = useWeave((state) => state.setZoom);
|
|
323
332
|
const setCanZoomIn = useWeave((state) => state.setCanZoomIn);
|
|
324
333
|
const setCanZoomOut = useWeave((state) => state.setCanZoomOut);
|
|
334
|
+
const setSelectionActive = useWeave((state) => state.setSelectionActive);
|
|
325
335
|
const setSelectedNodes = useWeave((state) => state.setSelectedNodes);
|
|
326
336
|
const setNode = useWeave((state) => state.setNode);
|
|
327
337
|
const setUsers = useWeave((state) => state.setUsers);
|
|
338
|
+
const onSelectionStateHandler = react.default.useCallback((active) => {
|
|
339
|
+
setSelectionActive(active);
|
|
340
|
+
}, []);
|
|
328
341
|
const onZoomChangeHandler = react.default.useCallback(
|
|
329
342
|
(zoomInfo) => {
|
|
330
343
|
setZoom(zoomInfo.scale);
|
|
@@ -335,19 +348,21 @@ const useWeaveEvents = () => {
|
|
|
335
348
|
[]
|
|
336
349
|
);
|
|
337
350
|
const onNodesChangeHandler = react.default.useCallback((nodes) => {
|
|
338
|
-
if (nodes.length === 1) setNode(nodes[0].node);
|
|
339
|
-
if (nodes.length
|
|
351
|
+
if (nodes.length === 1 && node?.key !== nodes[0].node.key) setNode(nodes[0].node);
|
|
352
|
+
if (nodes.length === 0) setNode(void 0);
|
|
340
353
|
setSelectedNodes(nodes);
|
|
341
|
-
}, []);
|
|
354
|
+
}, [node]);
|
|
342
355
|
const onConnectedUsersChangedHandler = react.default.useCallback((users) => {
|
|
343
356
|
setUsers(users);
|
|
344
357
|
}, []);
|
|
345
358
|
react.default.useEffect(() => {
|
|
346
359
|
if (!instance) return;
|
|
360
|
+
instance.addEventListener("onSelectionState", onSelectionStateHandler);
|
|
347
361
|
instance.addEventListener("onZoomChange", onZoomChangeHandler);
|
|
348
362
|
instance.addEventListener("onNodesChange", onNodesChangeHandler);
|
|
349
363
|
instance.addEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
|
350
364
|
return () => {
|
|
365
|
+
instance.removeEventListener("onSelectionState", onSelectionStateHandler);
|
|
351
366
|
instance.removeEventListener("onZoomChange", onZoomChangeHandler);
|
|
352
367
|
instance.removeEventListener("onNodesChange", onNodesChangeHandler);
|
|
353
368
|
instance.removeEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
package/dist/react.d.cts
CHANGED
|
@@ -114,6 +114,7 @@ interface WeaveRuntimeState {
|
|
|
114
114
|
canZoomOut: boolean;
|
|
115
115
|
};
|
|
116
116
|
selection: {
|
|
117
|
+
active: boolean;
|
|
117
118
|
nodes: WeaveSelection[];
|
|
118
119
|
node: WeaveStateElement | undefined;
|
|
119
120
|
};
|
|
@@ -132,6 +133,7 @@ interface WeaveRuntimeState {
|
|
|
132
133
|
setZoom: (newZoom: number) => void;
|
|
133
134
|
setCanZoomIn: (newCanZoomIn: boolean) => void;
|
|
134
135
|
setCanZoomOut: (newCanZoomOut: boolean) => void;
|
|
136
|
+
setSelectionActive: (newSelectionActive: boolean) => void;
|
|
135
137
|
setSelectedNodes: (newSelectedNodes: WeaveSelection[]) => void;
|
|
136
138
|
setNode: (newNode: WeaveStateElement | undefined) => void;
|
|
137
139
|
setActualAction: (newActualAction: string | undefined) => void;
|
package/dist/react.d.ts
CHANGED
|
@@ -114,6 +114,7 @@ interface WeaveRuntimeState {
|
|
|
114
114
|
canZoomOut: boolean;
|
|
115
115
|
};
|
|
116
116
|
selection: {
|
|
117
|
+
active: boolean;
|
|
117
118
|
nodes: WeaveSelection[];
|
|
118
119
|
node: WeaveStateElement | undefined;
|
|
119
120
|
};
|
|
@@ -132,6 +133,7 @@ interface WeaveRuntimeState {
|
|
|
132
133
|
setZoom: (newZoom: number) => void;
|
|
133
134
|
setCanZoomIn: (newCanZoomIn: boolean) => void;
|
|
134
135
|
setCanZoomOut: (newCanZoomOut: boolean) => void;
|
|
136
|
+
setSelectionActive: (newSelectionActive: boolean) => void;
|
|
135
137
|
setSelectedNodes: (newSelectedNodes: WeaveSelection[]) => void;
|
|
136
138
|
setNode: (newNode: WeaveStateElement | undefined) => void;
|
|
137
139
|
setActualAction: (newActualAction: string | undefined) => void;
|
package/dist/react.js
CHANGED
|
@@ -84,6 +84,7 @@ const useWeave = create()((set) => ({
|
|
|
84
84
|
options: []
|
|
85
85
|
},
|
|
86
86
|
selection: {
|
|
87
|
+
active: false,
|
|
87
88
|
nodes: [],
|
|
88
89
|
node: void 0
|
|
89
90
|
},
|
|
@@ -156,6 +157,13 @@ const useWeave = create()((set) => ({
|
|
|
156
157
|
canZoomOut: newCanZoomOut
|
|
157
158
|
}
|
|
158
159
|
})),
|
|
160
|
+
setSelectionActive: (newSelectionActive) => set((state) => ({
|
|
161
|
+
...state,
|
|
162
|
+
selection: {
|
|
163
|
+
...state.selection,
|
|
164
|
+
active: newSelectionActive
|
|
165
|
+
}
|
|
166
|
+
})),
|
|
159
167
|
setSelectedNodes: (newSelectedNodes) => set((state) => ({
|
|
160
168
|
...state,
|
|
161
169
|
selection: {
|
|
@@ -295,12 +303,17 @@ const WeaveProvider = ({ containerId, getUser, store, nodes = [], actions = [],
|
|
|
295
303
|
//#region src/hooks/events.tsx
|
|
296
304
|
const useWeaveEvents = () => {
|
|
297
305
|
const instance = useWeave((state) => state.instance);
|
|
306
|
+
const node = useWeave((state) => state.selection.node);
|
|
298
307
|
const setZoom = useWeave((state) => state.setZoom);
|
|
299
308
|
const setCanZoomIn = useWeave((state) => state.setCanZoomIn);
|
|
300
309
|
const setCanZoomOut = useWeave((state) => state.setCanZoomOut);
|
|
310
|
+
const setSelectionActive = useWeave((state) => state.setSelectionActive);
|
|
301
311
|
const setSelectedNodes = useWeave((state) => state.setSelectedNodes);
|
|
302
312
|
const setNode = useWeave((state) => state.setNode);
|
|
303
313
|
const setUsers = useWeave((state) => state.setUsers);
|
|
314
|
+
const onSelectionStateHandler = React.useCallback((active) => {
|
|
315
|
+
setSelectionActive(active);
|
|
316
|
+
}, []);
|
|
304
317
|
const onZoomChangeHandler = React.useCallback(
|
|
305
318
|
(zoomInfo) => {
|
|
306
319
|
setZoom(zoomInfo.scale);
|
|
@@ -311,19 +324,21 @@ const useWeaveEvents = () => {
|
|
|
311
324
|
[]
|
|
312
325
|
);
|
|
313
326
|
const onNodesChangeHandler = React.useCallback((nodes) => {
|
|
314
|
-
if (nodes.length === 1) setNode(nodes[0].node);
|
|
315
|
-
if (nodes.length
|
|
327
|
+
if (nodes.length === 1 && node?.key !== nodes[0].node.key) setNode(nodes[0].node);
|
|
328
|
+
if (nodes.length === 0) setNode(void 0);
|
|
316
329
|
setSelectedNodes(nodes);
|
|
317
|
-
}, []);
|
|
330
|
+
}, [node]);
|
|
318
331
|
const onConnectedUsersChangedHandler = React.useCallback((users) => {
|
|
319
332
|
setUsers(users);
|
|
320
333
|
}, []);
|
|
321
334
|
React.useEffect(() => {
|
|
322
335
|
if (!instance) return;
|
|
336
|
+
instance.addEventListener("onSelectionState", onSelectionStateHandler);
|
|
323
337
|
instance.addEventListener("onZoomChange", onZoomChangeHandler);
|
|
324
338
|
instance.addEventListener("onNodesChange", onNodesChangeHandler);
|
|
325
339
|
instance.addEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
|
326
340
|
return () => {
|
|
341
|
+
instance.removeEventListener("onSelectionState", onSelectionStateHandler);
|
|
327
342
|
instance.removeEventListener("onZoomChange", onZoomChangeHandler);
|
|
328
343
|
instance.removeEventListener("onNodesChange", onNodesChangeHandler);
|
|
329
344
|
instance.removeEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inditextech/weave-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"yjs": "13.6.26"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@inditextech/weave-sdk": "0.
|
|
51
|
+
"@inditextech/weave-sdk": "0.12.0",
|
|
52
52
|
"@types/node": "^22.15.3",
|
|
53
53
|
"@typescript-eslint/eslint-plugin": "8.26.0",
|
|
54
54
|
"@typescript-eslint/parser": "8.26.0",
|