@inditextech/weave-react 3.3.0 → 3.4.0-SNAPSHOT.38.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/react.d.ts +6 -2
- package/dist/react.js +67 -7
- package/package.json +3 -3
package/dist/react.d.ts
CHANGED
|
@@ -41,12 +41,14 @@ interface WeaveRuntimeState {
|
|
|
41
41
|
status: string;
|
|
42
42
|
};
|
|
43
43
|
room: {
|
|
44
|
+
id: string | null;
|
|
45
|
+
switching: boolean;
|
|
44
46
|
loaded: boolean;
|
|
45
47
|
};
|
|
46
48
|
asyncElements: {
|
|
49
|
+
state: "idle" | "loading" | "loaded";
|
|
47
50
|
loaded: number;
|
|
48
51
|
total: number;
|
|
49
|
-
allLoaded: boolean;
|
|
50
52
|
};
|
|
51
53
|
users: WeaveConnectedUsers;
|
|
52
54
|
undoRedo: {
|
|
@@ -72,9 +74,11 @@ interface WeaveRuntimeState {
|
|
|
72
74
|
setStatus: (newStatus: WeaveStatus) => void;
|
|
73
75
|
setAppState: (newAppState: WeaveState) => void;
|
|
74
76
|
setConnectionStatus: (newConnectionStatus: string) => void;
|
|
77
|
+
setRoomId: (newRoomId: string | null) => void;
|
|
78
|
+
setRoomSwitching: (newRoomSwitching: boolean) => void;
|
|
75
79
|
setRoomLoaded: (newStatus: boolean) => void;
|
|
76
80
|
setAsyncElements: (loaded: number, total: number) => void;
|
|
77
|
-
|
|
81
|
+
setAsyncElementsState: (newState: "idle" | "loading" | "loaded") => void;
|
|
78
82
|
setUsers: (newUsers: WeaveConnectedUsers) => void;
|
|
79
83
|
setCanUndo: (newCanUndo: boolean) => void;
|
|
80
84
|
setCanRedo: (newCanRedo: boolean) => void;
|
package/dist/react.js
CHANGED
|
@@ -53,11 +53,15 @@ const useWeave = create()((set) => ({
|
|
|
53
53
|
instance: null,
|
|
54
54
|
appState: { weave: {} },
|
|
55
55
|
status: WEAVE_INSTANCE_STATUS.IDLE,
|
|
56
|
-
room: {
|
|
56
|
+
room: {
|
|
57
|
+
id: null,
|
|
58
|
+
switching: false,
|
|
59
|
+
loaded: false
|
|
60
|
+
},
|
|
57
61
|
asyncElements: {
|
|
62
|
+
state: "idle",
|
|
58
63
|
loaded: 0,
|
|
59
|
-
total: 0
|
|
60
|
-
allLoaded: false
|
|
64
|
+
total: 0
|
|
61
65
|
},
|
|
62
66
|
connection: { status: "disconnected" },
|
|
63
67
|
users: {},
|
|
@@ -107,6 +111,20 @@ const useWeave = create()((set) => ({
|
|
|
107
111
|
status: newConnectionStatus
|
|
108
112
|
}
|
|
109
113
|
})),
|
|
114
|
+
setRoomId: (newRoomId) => set((state) => ({
|
|
115
|
+
...state,
|
|
116
|
+
room: {
|
|
117
|
+
...state.room,
|
|
118
|
+
id: newRoomId
|
|
119
|
+
}
|
|
120
|
+
})),
|
|
121
|
+
setRoomSwitching: (newRoomSwitching) => set((state) => ({
|
|
122
|
+
...state,
|
|
123
|
+
room: {
|
|
124
|
+
...state.room,
|
|
125
|
+
switching: newRoomSwitching
|
|
126
|
+
}
|
|
127
|
+
})),
|
|
110
128
|
setRoomLoaded: (newStatus) => set((state) => ({
|
|
111
129
|
...state,
|
|
112
130
|
room: {
|
|
@@ -122,11 +140,11 @@ const useWeave = create()((set) => ({
|
|
|
122
140
|
total
|
|
123
141
|
}
|
|
124
142
|
})),
|
|
125
|
-
|
|
143
|
+
setAsyncElementsState: (newState) => set((state) => ({
|
|
126
144
|
...state,
|
|
127
145
|
asyncElements: {
|
|
128
146
|
...state.asyncElements,
|
|
129
|
-
|
|
147
|
+
state: newState
|
|
130
148
|
}
|
|
131
149
|
})),
|
|
132
150
|
setUsers: (newUsers) => set((state) => ({
|
|
@@ -217,7 +235,7 @@ const WeaveProvider = ({ getContainer, store, renderer, nodes = [], actions = []
|
|
|
217
235
|
const setActualAction = useWeave((state) => state.setActualAction);
|
|
218
236
|
const setConnectionStatus = useWeave((state) => state.setConnectionStatus);
|
|
219
237
|
const setAsyncElements = useWeave((state) => state.setAsyncElements);
|
|
220
|
-
const
|
|
238
|
+
const setAsyncElementsState = useWeave((state) => state.setAsyncElementsState);
|
|
221
239
|
const onInstanceStatusHandler = React.useCallback(
|
|
222
240
|
(status) => {
|
|
223
241
|
setStatus(status);
|
|
@@ -261,9 +279,17 @@ const WeaveProvider = ({ getContainer, store, renderer, nodes = [], actions = []
|
|
|
261
279
|
},
|
|
262
280
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
263
281
|
[selectedNodes]
|
|
282
|
+
);
|
|
283
|
+
const onAsyncElementsIdleHandler = React.useCallback(
|
|
284
|
+
() => {
|
|
285
|
+
setAsyncElementsState("idle");
|
|
286
|
+
},
|
|
287
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
288
|
+
[selectedNodes]
|
|
264
289
|
);
|
|
265
290
|
const onAsyncElementsLoadingHandler = React.useCallback(
|
|
266
291
|
({ loaded, total }) => {
|
|
292
|
+
setAsyncElementsState("loading");
|
|
267
293
|
setAsyncElements(loaded, total);
|
|
268
294
|
},
|
|
269
295
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -271,7 +297,7 @@ const WeaveProvider = ({ getContainer, store, renderer, nodes = [], actions = []
|
|
|
271
297
|
);
|
|
272
298
|
const onAsyncElementsLoadedHandler = React.useCallback(
|
|
273
299
|
() => {
|
|
274
|
-
|
|
300
|
+
setAsyncElementsState("loaded");
|
|
275
301
|
},
|
|
276
302
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
277
303
|
[selectedNodes]
|
|
@@ -305,6 +331,7 @@ const WeaveProvider = ({ getContainer, store, renderer, nodes = [], actions = []
|
|
|
305
331
|
weaveInstanceRef.current.addEventListener("onStateChange", onStateChangeHandler);
|
|
306
332
|
weaveInstanceRef.current.addEventListener("onUndoManagerStatusChange", onUndoManagerStatusChangeHandler);
|
|
307
333
|
weaveInstanceRef.current.addEventListener("onActiveActionChange", onActiveActionChangeHandler);
|
|
334
|
+
weaveInstanceRef.current.addEventListener("onAsyncElementsIdle", onAsyncElementsIdleHandler);
|
|
308
335
|
weaveInstanceRef.current.addEventListener("onAsyncElementsLoading", onAsyncElementsLoadingHandler);
|
|
309
336
|
weaveInstanceRef.current.addEventListener("onAsyncElementsLoaded", onAsyncElementsLoadedHandler);
|
|
310
337
|
setInstance(weaveInstanceRef.current);
|
|
@@ -315,6 +342,7 @@ const WeaveProvider = ({ getContainer, store, renderer, nodes = [], actions = []
|
|
|
315
342
|
setRoomLoaded(false);
|
|
316
343
|
initWeave();
|
|
317
344
|
return () => {
|
|
345
|
+
console.log("unmounting weave provider, let's clean up");
|
|
318
346
|
weaveInstanceRef.current?.removeEventListener("onInstanceStatus", onInstanceStatusHandler);
|
|
319
347
|
weaveInstanceRef.current?.removeEventListener("onStoreConnectionStatusChange", onStoreConnectionStatusChangeHandler);
|
|
320
348
|
weaveInstanceRef.current?.removeEventListener("onRoomLoaded", onRoomLoadedHandler);
|
|
@@ -325,6 +353,7 @@ const WeaveProvider = ({ getContainer, store, renderer, nodes = [], actions = []
|
|
|
325
353
|
weaveInstanceRef.current?.removeEventListener("onAsyncElementsLoaded", onAsyncElementsLoadedHandler);
|
|
326
354
|
setStatus(WEAVE_INSTANCE_STATUS.IDLE);
|
|
327
355
|
setRoomLoaded(false);
|
|
356
|
+
console.log("Destroying weave instance");
|
|
328
357
|
weaveInstanceRef.current?.destroy();
|
|
329
358
|
weaveInstanceRef.current = null;
|
|
330
359
|
};
|
|
@@ -337,6 +366,8 @@ const WeaveProvider = ({ getContainer, store, renderer, nodes = [], actions = []
|
|
|
337
366
|
const useWeaveEvents = () => {
|
|
338
367
|
const instance = useWeave((state) => state.instance);
|
|
339
368
|
const node = useWeave((state) => state.selection.node);
|
|
369
|
+
const setRoomId = useWeave((state) => state.setRoomId);
|
|
370
|
+
const setRoomSwitching = useWeave((state) => state.setRoomSwitching);
|
|
340
371
|
const setZoom = useWeave((state) => state.setZoom);
|
|
341
372
|
const setCanZoomIn = useWeave((state) => state.setCanZoomIn);
|
|
342
373
|
const setCanZoomOut = useWeave((state) => state.setCanZoomOut);
|
|
@@ -345,6 +376,29 @@ const useWeaveEvents = () => {
|
|
|
345
376
|
const setNode = useWeave((state) => state.setNode);
|
|
346
377
|
const setUsers = useWeave((state) => state.setUsers);
|
|
347
378
|
const setUsersLocks = useWeave((state) => state.setUsersLocks);
|
|
379
|
+
const onStoreRoomChangedHandler = React.useCallback(
|
|
380
|
+
({ room }) => {
|
|
381
|
+
setRoomId(room);
|
|
382
|
+
},
|
|
383
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
384
|
+
[]
|
|
385
|
+
);
|
|
386
|
+
const onRoomSwitchingStartHandler = React.useCallback(
|
|
387
|
+
({ room }) => {
|
|
388
|
+
console.log("Room switching started to room:", room);
|
|
389
|
+
setRoomSwitching(true);
|
|
390
|
+
},
|
|
391
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
392
|
+
[]
|
|
393
|
+
);
|
|
394
|
+
const onRoomSwitchingEndHandler = React.useCallback(
|
|
395
|
+
({ room }) => {
|
|
396
|
+
console.log("Room switching ended to room:", room);
|
|
397
|
+
setRoomSwitching(false);
|
|
398
|
+
},
|
|
399
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
400
|
+
[]
|
|
401
|
+
);
|
|
348
402
|
const onSelectionStateHandler = React.useCallback((active) => {
|
|
349
403
|
setSelectionActive(active);
|
|
350
404
|
}, []);
|
|
@@ -389,12 +443,18 @@ const useWeaveEvents = () => {
|
|
|
389
443
|
);
|
|
390
444
|
React.useEffect(() => {
|
|
391
445
|
if (!instance) return;
|
|
446
|
+
instance.addEventListener("onStoreRoomChanged", onStoreRoomChangedHandler);
|
|
447
|
+
instance.addEventListener("onRoomSwitchingStart", onRoomSwitchingStartHandler);
|
|
448
|
+
instance.addEventListener("onRoomSwitchingEnd", onRoomSwitchingEndHandler);
|
|
392
449
|
instance.addEventListener("onSelectionState", onSelectionStateHandler);
|
|
393
450
|
instance.addEventListener("onZoomChange", onZoomChangeHandler);
|
|
394
451
|
instance.addEventListener("onNodesChange", onNodesChangeHandler);
|
|
395
452
|
instance.addEventListener("onConnectedUsersChange", onConnectedUsersChangedHandler);
|
|
396
453
|
instance.addEventListener("onMutexLockChange", onMutexLockChangeHandler);
|
|
397
454
|
return () => {
|
|
455
|
+
instance.removeEventListener("onStoreRoomChanged", onStoreRoomChangedHandler);
|
|
456
|
+
instance.removeEventListener("onRoomSwitchingStart", onRoomSwitchingStartHandler);
|
|
457
|
+
instance.removeEventListener("onRoomSwitchingEnd", onRoomSwitchingEndHandler);
|
|
398
458
|
instance.removeEventListener("onSelectionState", onSelectionStateHandler);
|
|
399
459
|
instance.removeEventListener("onZoomChange", onZoomChangeHandler);
|
|
400
460
|
instance.removeEventListener("onNodesChange", onNodesChangeHandler);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inditextech/weave-react",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0-SNAPSHOT.38.1",
|
|
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": "3.
|
|
51
|
-
"@inditextech/weave-types": "3.
|
|
50
|
+
"@inditextech/weave-sdk": "3.4.0-SNAPSHOT.38.1",
|
|
51
|
+
"@inditextech/weave-types": "3.4.0-SNAPSHOT.38.1",
|
|
52
52
|
"@syncedstore/core": "0.6.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|