@inditextech/weave-react 2.12.1 → 2.13.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.d.ts +2 -0
- package/dist/react.js +38 -8
- package/package.json +3 -3
package/dist/react.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ interface WeaveRuntimeState {
|
|
|
48
48
|
canUndo: boolean;
|
|
49
49
|
canRedo: boolean;
|
|
50
50
|
};
|
|
51
|
+
usersLocks: Record<string, unknown>;
|
|
51
52
|
zoom: {
|
|
52
53
|
value: number;
|
|
53
54
|
canZoomIn: boolean;
|
|
@@ -70,6 +71,7 @@ interface WeaveRuntimeState {
|
|
|
70
71
|
setUsers: (newUsers: WeaveConnectedUsers) => void;
|
|
71
72
|
setCanUndo: (newCanUndo: boolean) => void;
|
|
72
73
|
setCanRedo: (newCanRedo: boolean) => void;
|
|
74
|
+
setUsersLocks: (newUsersLocks: Record<string, unknown>) => void;
|
|
73
75
|
setZoom: (newZoom: number) => void;
|
|
74
76
|
setCanZoomIn: (newCanZoomIn: boolean) => void;
|
|
75
77
|
setCanZoomOut: (newCanZoomOut: boolean) => void;
|
package/dist/react.js
CHANGED
|
@@ -60,6 +60,7 @@ const useWeave = create()((set) => ({
|
|
|
60
60
|
canUndo: false,
|
|
61
61
|
canRedo: false
|
|
62
62
|
},
|
|
63
|
+
usersLocks: {},
|
|
63
64
|
zoom: {
|
|
64
65
|
value: 1,
|
|
65
66
|
canZoomIn: false,
|
|
@@ -126,6 +127,10 @@ const useWeave = create()((set) => ({
|
|
|
126
127
|
canRedo: newCanRedo
|
|
127
128
|
}
|
|
128
129
|
})),
|
|
130
|
+
setUsersLocks: (newUsersLocks) => set((state) => ({
|
|
131
|
+
...state,
|
|
132
|
+
usersLocks: newUsersLocks
|
|
133
|
+
})),
|
|
129
134
|
setZoom: (newZoom) => set((state) => ({
|
|
130
135
|
...state,
|
|
131
136
|
zoom: {
|
|
@@ -301,6 +306,7 @@ const useWeaveEvents = () => {
|
|
|
301
306
|
const setSelectedNodes = useWeave((state) => state.setSelectedNodes);
|
|
302
307
|
const setNode = useWeave((state) => state.setNode);
|
|
303
308
|
const setUsers = useWeave((state) => state.setUsers);
|
|
309
|
+
const setUsersLocks = useWeave((state) => state.setUsersLocks);
|
|
304
310
|
const onSelectionStateHandler = React.useCallback((active) => {
|
|
305
311
|
setSelectionActive(active);
|
|
306
312
|
}, []);
|
|
@@ -313,25 +319,49 @@ const useWeaveEvents = () => {
|
|
|
313
319
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
314
320
|
[]
|
|
315
321
|
);
|
|
316
|
-
const onNodesChangeHandler = React.useCallback(
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
322
|
+
const onNodesChangeHandler = React.useCallback(
|
|
323
|
+
(nodes) => {
|
|
324
|
+
if (nodes.length === 1 && node?.key !== nodes[0].node?.key) setNode(nodes[0].node);
|
|
325
|
+
if (nodes.length === 0) setNode(void 0);
|
|
326
|
+
setSelectedNodes(nodes);
|
|
327
|
+
},
|
|
328
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
329
|
+
[node]
|
|
330
|
+
);
|
|
331
|
+
const onConnectedUsersChangedHandler = React.useCallback(
|
|
332
|
+
(users) => {
|
|
333
|
+
setUsers(users);
|
|
334
|
+
},
|
|
335
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
336
|
+
[]
|
|
337
|
+
);
|
|
338
|
+
const onMutexLockChangeHandler = React.useCallback(
|
|
339
|
+
({ locks }) => {
|
|
340
|
+
if (!instance) return;
|
|
341
|
+
const actUsersLocks = {};
|
|
342
|
+
for (const lockKey of locks) {
|
|
343
|
+
const mutexInfo = instance?.getLockDetails(lockKey);
|
|
344
|
+
if (mutexInfo) actUsersLocks[lockKey] = mutexInfo;
|
|
345
|
+
}
|
|
346
|
+
setUsersLocks(actUsersLocks);
|
|
347
|
+
},
|
|
348
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
349
|
+
[instance]
|
|
350
|
+
);
|
|
324
351
|
React.useEffect(() => {
|
|
325
352
|
if (!instance) return;
|
|
326
353
|
instance.addEventListener("onSelectionState", onSelectionStateHandler);
|
|
327
354
|
instance.addEventListener("onZoomChange", onZoomChangeHandler);
|
|
328
355
|
instance.addEventListener("onNodesChange", onNodesChangeHandler);
|
|
329
356
|
instance.addEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
|
357
|
+
instance.addEventListener("onMutexLockChange", onMutexLockChangeHandler);
|
|
330
358
|
return () => {
|
|
331
359
|
instance.removeEventListener("onSelectionState", onSelectionStateHandler);
|
|
332
360
|
instance.removeEventListener("onZoomChange", onZoomChangeHandler);
|
|
333
361
|
instance.removeEventListener("onNodesChange", onNodesChangeHandler);
|
|
334
362
|
instance.removeEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
|
363
|
+
instance.removeEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
|
364
|
+
instance.removeEventListener("onMutexLockChange", onMutexLockChangeHandler);
|
|
335
365
|
};
|
|
336
366
|
}, [instance]);
|
|
337
367
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inditextech/weave-react",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"version:release": "npm version $RELEASE_VERSION -m \"[npm-scripts] prepare release $RELEASE_VERSION\" --tag-version-prefix \"\""
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@inditextech/weave-sdk": "2.
|
|
51
|
-
"@inditextech/weave-types": "2.
|
|
50
|
+
"@inditextech/weave-sdk": "2.13.0",
|
|
51
|
+
"@inditextech/weave-types": "2.13.0",
|
|
52
52
|
"@syncedstore/core": "0.6.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|