Prevent the diagram from getting overwritten when reloaded

This commit is contained in:
1ilit 2024-09-01 20:24:09 +04:00
parent 59a388f44c
commit 85cf795fc9

View File

@ -57,7 +57,7 @@ export default function WorkSpace() {
} = useDiagram(); } = useDiagram();
const { undoStack, redoStack, setUndoStack, setRedoStack } = useUndoRedo(); const { undoStack, redoStack, setUndoStack, setRedoStack } = useUndoRedo();
const { t, i18n } = useTranslation(); const { t, i18n } = useTranslation();
let [searchParams] = useSearchParams(); let [searchParams, setSearchParams] = useSearchParams();
const handleResize = (e) => { const handleResize = (e) => {
if (!resize) return; if (!resize) return;
const w = isRtl(i18n.language) ? window.innerWidth - e.clientX : e.clientX; const w = isRtl(i18n.language) ? window.innerWidth - e.clientX : e.clientX;
@ -70,6 +70,8 @@ export default function WorkSpace() {
const saveAsDiagram = window.name === "" || op === "d" || op === "lt"; const saveAsDiagram = window.name === "" || op === "d" || op === "lt";
if (saveAsDiagram) { if (saveAsDiagram) {
searchParams.delete("shareId");
setSearchParams(searchParams);
if ( if (
(id === 0 && window.name === "") || (id === 0 && window.name === "") ||
window.name.split(" ")[0] === "lt" window.name.split(" ")[0] === "lt"
@ -144,6 +146,8 @@ export default function WorkSpace() {
}); });
} }
}, [ }, [
searchParams,
setSearchParams,
tables, tables,
relationships, relationships,
notes, notes,
@ -317,9 +321,11 @@ export default function WorkSpace() {
const loadFromGist = useCallback( const loadFromGist = useCallback(
async (shareId) => { async (shareId) => {
const d = await db.diagrams.get({ loadedFromGistId: shareId }); const existingDiagram = await db.diagrams.get({
if (d) { loadedFromGistId: shareId,
window.name = "d " + d.id; });
if (existingDiagram) {
window.name = "d " + existingDiagram.id;
} else { } else {
window.name = ""; window.name = "";
} }
@ -332,7 +338,7 @@ export default function WorkSpace() {
}); });
const diagramSrc = res.data.files["share.json"].content; const diagramSrc = res.data.files["share.json"].content;
const d = JSON.parse(diagramSrc); const d = JSON.parse(diagramSrc);
setGistId("") setGistId("");
setUndoStack([]); setUndoStack([]);
setRedoStack([]); setRedoStack([]);
setLoadedFromGistId(shareId); setLoadedFromGistId(shareId);