rita-workspace 0.5.29 → 0.5.31

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 CHANGED
@@ -678,7 +678,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
678
678
  (0, import_react.useEffect)(() => {
679
679
  if (!tabIdReady) return;
680
680
  const drawingId = activeDrawing?.id || null;
681
- setTabDrawing(drawingId);
681
+ if (drawingId) setTabDrawing(drawingId);
682
682
  if (hasCleanedUpRef.current) {
683
683
  if (drawingId) {
684
684
  setIsDrawingConflict(isDrawingOpenedEarlierInOtherTab(drawingId));
@@ -966,6 +966,11 @@ function WorkspaceProvider({ children, lang = "en" }) {
966
966
  if (!activeDrawing) return;
967
967
  if (isDrawingOpenedEarlierInOtherTab(activeDrawing.id)) return;
968
968
  try {
969
+ const fresh = await getDrawing(activeDrawing.id);
970
+ if (fresh && fresh.updatedAt > (activeDrawing.updatedAt ?? 0)) return;
971
+ if (Array.isArray(elements) && elements.length === 0 && fresh && Array.isArray(fresh.elements) && fresh.elements.length > 0) {
972
+ return;
973
+ }
969
974
  const updateData = {
970
975
  elements,
971
976
  appState
@@ -990,6 +995,12 @@ function WorkspaceProvider({ children, lang = "en" }) {
990
995
  const saveDrawingById = (0, import_react.useCallback)(async (id, elements, appState, files) => {
991
996
  if (isDrawingOpenedEarlierInOtherTab(id)) return;
992
997
  try {
998
+ const inMem = drawingsRef.current.find((d) => d.id === id);
999
+ const fresh = await getDrawing(id);
1000
+ if (fresh && inMem && fresh.updatedAt > (inMem.updatedAt ?? 0)) return;
1001
+ if (Array.isArray(elements) && elements.length === 0 && fresh && Array.isArray(fresh.elements) && fresh.elements.length > 0) {
1002
+ return;
1003
+ }
993
1004
  const updateData = {
994
1005
  elements,
995
1006
  appState
package/dist/index.mjs CHANGED
@@ -607,7 +607,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
607
607
  useEffect(() => {
608
608
  if (!tabIdReady) return;
609
609
  const drawingId = activeDrawing?.id || null;
610
- setTabDrawing(drawingId);
610
+ if (drawingId) setTabDrawing(drawingId);
611
611
  if (hasCleanedUpRef.current) {
612
612
  if (drawingId) {
613
613
  setIsDrawingConflict(isDrawingOpenedEarlierInOtherTab(drawingId));
@@ -895,6 +895,11 @@ function WorkspaceProvider({ children, lang = "en" }) {
895
895
  if (!activeDrawing) return;
896
896
  if (isDrawingOpenedEarlierInOtherTab(activeDrawing.id)) return;
897
897
  try {
898
+ const fresh = await getDrawing(activeDrawing.id);
899
+ if (fresh && fresh.updatedAt > (activeDrawing.updatedAt ?? 0)) return;
900
+ if (Array.isArray(elements) && elements.length === 0 && fresh && Array.isArray(fresh.elements) && fresh.elements.length > 0) {
901
+ return;
902
+ }
898
903
  const updateData = {
899
904
  elements,
900
905
  appState
@@ -919,6 +924,12 @@ function WorkspaceProvider({ children, lang = "en" }) {
919
924
  const saveDrawingById = useCallback(async (id, elements, appState, files) => {
920
925
  if (isDrawingOpenedEarlierInOtherTab(id)) return;
921
926
  try {
927
+ const inMem = drawingsRef.current.find((d) => d.id === id);
928
+ const fresh = await getDrawing(id);
929
+ if (fresh && inMem && fresh.updatedAt > (inMem.updatedAt ?? 0)) return;
930
+ if (Array.isArray(elements) && elements.length === 0 && fresh && Array.isArray(fresh.elements) && fresh.elements.length > 0) {
931
+ return;
932
+ }
922
933
  const updateData = {
923
934
  elements,
924
935
  appState
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rita-workspace",
3
- "version": "0.5.29",
3
+ "version": "0.5.31",
4
4
  "description": "Multi-drawing workspace feature for Rita (Excalidraw fork)",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",