rita-workspace 0.5.28 → 0.5.29
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 +6 -1
- package/dist/index.mjs +6 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -530,6 +530,7 @@ function isDrawingOpenedEarlierInOtherTab(drawingId) {
|
|
|
530
530
|
([tabId, entry]) => tabId !== TAB_ID && entry.drawingId === drawingId && entry.openedAt <= myOpenedAt
|
|
531
531
|
);
|
|
532
532
|
}
|
|
533
|
+
var ownProbeIds = /* @__PURE__ */ new Set();
|
|
533
534
|
function detectTabIdCollision() {
|
|
534
535
|
return new Promise((resolve) => {
|
|
535
536
|
let channel;
|
|
@@ -539,15 +540,18 @@ function detectTabIdCollision() {
|
|
|
539
540
|
resolve(false);
|
|
540
541
|
return;
|
|
541
542
|
}
|
|
543
|
+
const probeId = typeof crypto !== "undefined" && crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2);
|
|
544
|
+
ownProbeIds.add(probeId);
|
|
542
545
|
let collided = false;
|
|
543
546
|
channel.onmessage = (event) => {
|
|
544
547
|
if (event.data?.type === "id-collision" && event.data?.tabId === TAB_ID) {
|
|
545
548
|
collided = true;
|
|
546
549
|
}
|
|
547
550
|
};
|
|
548
|
-
channel.postMessage({ type: "id-claim", tabId: TAB_ID });
|
|
551
|
+
channel.postMessage({ type: "id-claim", tabId: TAB_ID, probeId });
|
|
549
552
|
setTimeout(() => {
|
|
550
553
|
channel.close();
|
|
554
|
+
ownProbeIds.delete(probeId);
|
|
551
555
|
resolve(collided);
|
|
552
556
|
}, 300);
|
|
553
557
|
});
|
|
@@ -634,6 +638,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
|
|
|
634
638
|
if (event.data?.type === "ping") {
|
|
635
639
|
channel?.postMessage({ type: "pong", tabId: TAB_ID });
|
|
636
640
|
} else if (event.data?.type === "id-claim" && event.data?.tabId === TAB_ID) {
|
|
641
|
+
if (event.data?.probeId && ownProbeIds.has(event.data.probeId)) return;
|
|
637
642
|
channel?.postMessage({ type: "id-collision", tabId: TAB_ID });
|
|
638
643
|
} else if (event.data?.type === "workspace-changed" && event.data?.tabId !== TAB_ID) {
|
|
639
644
|
refreshDrawingsRef.current();
|
package/dist/index.mjs
CHANGED
|
@@ -459,6 +459,7 @@ function isDrawingOpenedEarlierInOtherTab(drawingId) {
|
|
|
459
459
|
([tabId, entry]) => tabId !== TAB_ID && entry.drawingId === drawingId && entry.openedAt <= myOpenedAt
|
|
460
460
|
);
|
|
461
461
|
}
|
|
462
|
+
var ownProbeIds = /* @__PURE__ */ new Set();
|
|
462
463
|
function detectTabIdCollision() {
|
|
463
464
|
return new Promise((resolve) => {
|
|
464
465
|
let channel;
|
|
@@ -468,15 +469,18 @@ function detectTabIdCollision() {
|
|
|
468
469
|
resolve(false);
|
|
469
470
|
return;
|
|
470
471
|
}
|
|
472
|
+
const probeId = typeof crypto !== "undefined" && crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2);
|
|
473
|
+
ownProbeIds.add(probeId);
|
|
471
474
|
let collided = false;
|
|
472
475
|
channel.onmessage = (event) => {
|
|
473
476
|
if (event.data?.type === "id-collision" && event.data?.tabId === TAB_ID) {
|
|
474
477
|
collided = true;
|
|
475
478
|
}
|
|
476
479
|
};
|
|
477
|
-
channel.postMessage({ type: "id-claim", tabId: TAB_ID });
|
|
480
|
+
channel.postMessage({ type: "id-claim", tabId: TAB_ID, probeId });
|
|
478
481
|
setTimeout(() => {
|
|
479
482
|
channel.close();
|
|
483
|
+
ownProbeIds.delete(probeId);
|
|
480
484
|
resolve(collided);
|
|
481
485
|
}, 300);
|
|
482
486
|
});
|
|
@@ -563,6 +567,7 @@ function WorkspaceProvider({ children, lang = "en" }) {
|
|
|
563
567
|
if (event.data?.type === "ping") {
|
|
564
568
|
channel?.postMessage({ type: "pong", tabId: TAB_ID });
|
|
565
569
|
} else if (event.data?.type === "id-claim" && event.data?.tabId === TAB_ID) {
|
|
570
|
+
if (event.data?.probeId && ownProbeIds.has(event.data.probeId)) return;
|
|
566
571
|
channel?.postMessage({ type: "id-collision", tabId: TAB_ID });
|
|
567
572
|
} else if (event.data?.type === "workspace-changed" && event.data?.tabId !== TAB_ID) {
|
|
568
573
|
refreshDrawingsRef.current();
|