rita-workspace 0.5.46 → 0.5.47
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/index.js +10 -7
- package/dist/index.mjs +10 -7
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -431,6 +431,13 @@ function isLanguageSupported(langCode) {
|
|
|
431
431
|
return lang in translations;
|
|
432
432
|
}
|
|
433
433
|
|
|
434
|
+
// src/state/saveGuard.ts
|
|
435
|
+
function shouldAbortSaveDueToIdMismatch(expectedDrawingId, currentActiveDrawingId) {
|
|
436
|
+
if (!expectedDrawingId) return true;
|
|
437
|
+
if (!currentActiveDrawingId) return true;
|
|
438
|
+
return expectedDrawingId !== currentActiveDrawingId;
|
|
439
|
+
}
|
|
440
|
+
|
|
434
441
|
// src/state/WorkspaceContext.tsx
|
|
435
442
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
436
443
|
warmDB();
|
|
@@ -992,7 +999,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
|
|
|
992
999
|
}
|
|
993
1000
|
}, [workspace]);
|
|
994
1001
|
const saveCurrentDrawing = (0, import_react.useCallback)(async (expectedDrawingId, elements, appState, files) => {
|
|
995
|
-
if (expectedDrawingId
|
|
1002
|
+
if (shouldAbortSaveDueToIdMismatch(expectedDrawingId, activeDrawingIdRef.current)) {
|
|
996
1003
|
return;
|
|
997
1004
|
}
|
|
998
1005
|
if (!activeDrawing || activeDrawing.id !== expectedDrawingId) return;
|
|
@@ -1000,7 +1007,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
|
|
|
1000
1007
|
try {
|
|
1001
1008
|
const fresh = await getDrawing(expectedDrawingId);
|
|
1002
1009
|
if (fresh && fresh.updatedAt > (activeDrawing.updatedAt ?? 0)) return;
|
|
1003
|
-
if (expectedDrawingId
|
|
1010
|
+
if (shouldAbortSaveDueToIdMismatch(expectedDrawingId, activeDrawingIdRef.current)) return;
|
|
1004
1011
|
if (Array.isArray(elements) && elements.length === 0 && fresh && Array.isArray(fresh.elements) && fresh.elements.length > 0) {
|
|
1005
1012
|
return;
|
|
1006
1013
|
}
|
|
@@ -1758,11 +1765,7 @@ var DrawingsDialog = ({
|
|
|
1758
1765
|
setSelectedId(null);
|
|
1759
1766
|
}
|
|
1760
1767
|
setIsRefreshing(true);
|
|
1761
|
-
refreshDrawings().
|
|
1762
|
-
if (isFirstOpen) {
|
|
1763
|
-
setExpandedFolders(new Set(foldersRef.current.map((f) => f.id)));
|
|
1764
|
-
}
|
|
1765
|
-
}).finally(() => setIsRefreshing(false));
|
|
1768
|
+
refreshDrawings().finally(() => setIsRefreshing(false));
|
|
1766
1769
|
}
|
|
1767
1770
|
prevOpenRef.current = open;
|
|
1768
1771
|
}, [open, refreshDrawings]);
|
package/dist/index.mjs
CHANGED
|
@@ -359,6 +359,13 @@ function isLanguageSupported(langCode) {
|
|
|
359
359
|
return lang in translations;
|
|
360
360
|
}
|
|
361
361
|
|
|
362
|
+
// src/state/saveGuard.ts
|
|
363
|
+
function shouldAbortSaveDueToIdMismatch(expectedDrawingId, currentActiveDrawingId) {
|
|
364
|
+
if (!expectedDrawingId) return true;
|
|
365
|
+
if (!currentActiveDrawingId) return true;
|
|
366
|
+
return expectedDrawingId !== currentActiveDrawingId;
|
|
367
|
+
}
|
|
368
|
+
|
|
362
369
|
// src/state/WorkspaceContext.tsx
|
|
363
370
|
import { jsx } from "react/jsx-runtime";
|
|
364
371
|
warmDB();
|
|
@@ -920,7 +927,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
|
|
|
920
927
|
}
|
|
921
928
|
}, [workspace]);
|
|
922
929
|
const saveCurrentDrawing = useCallback(async (expectedDrawingId, elements, appState, files) => {
|
|
923
|
-
if (expectedDrawingId
|
|
930
|
+
if (shouldAbortSaveDueToIdMismatch(expectedDrawingId, activeDrawingIdRef.current)) {
|
|
924
931
|
return;
|
|
925
932
|
}
|
|
926
933
|
if (!activeDrawing || activeDrawing.id !== expectedDrawingId) return;
|
|
@@ -928,7 +935,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
|
|
|
928
935
|
try {
|
|
929
936
|
const fresh = await getDrawing(expectedDrawingId);
|
|
930
937
|
if (fresh && fresh.updatedAt > (activeDrawing.updatedAt ?? 0)) return;
|
|
931
|
-
if (expectedDrawingId
|
|
938
|
+
if (shouldAbortSaveDueToIdMismatch(expectedDrawingId, activeDrawingIdRef.current)) return;
|
|
932
939
|
if (Array.isArray(elements) && elements.length === 0 && fresh && Array.isArray(fresh.elements) && fresh.elements.length > 0) {
|
|
933
940
|
return;
|
|
934
941
|
}
|
|
@@ -1686,11 +1693,7 @@ var DrawingsDialog = ({
|
|
|
1686
1693
|
setSelectedId(null);
|
|
1687
1694
|
}
|
|
1688
1695
|
setIsRefreshing(true);
|
|
1689
|
-
refreshDrawings().
|
|
1690
|
-
if (isFirstOpen) {
|
|
1691
|
-
setExpandedFolders(new Set(foldersRef.current.map((f) => f.id)));
|
|
1692
|
-
}
|
|
1693
|
-
}).finally(() => setIsRefreshing(false));
|
|
1696
|
+
refreshDrawings().finally(() => setIsRefreshing(false));
|
|
1694
1697
|
}
|
|
1695
1698
|
prevOpenRef.current = open;
|
|
1696
1699
|
}, [open, refreshDrawings]);
|