Save pan and zoom
This commit is contained in:
parent
a7f4fca580
commit
6a5f18f1de
@ -1,4 +1,4 @@
|
|||||||
import { useState, createContext, useEffect } from "react";
|
import { useState, createContext, useEffect, useCallback } from "react";
|
||||||
import ControlPanel from "../components/ControlPanel";
|
import ControlPanel from "../components/ControlPanel";
|
||||||
import Canvas from "../components/Canvas";
|
import Canvas from "../components/Canvas";
|
||||||
import SidePanel from "../components/SidePanel";
|
import SidePanel from "../components/SidePanel";
|
||||||
@ -471,10 +471,12 @@ export default function Editor() {
|
|||||||
types.length,
|
types.length,
|
||||||
relationships.length,
|
relationships.length,
|
||||||
tasks?.length,
|
tasks?.length,
|
||||||
|
settings.pan,
|
||||||
|
settings.zoom,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
useEffect(() => {
|
const save = useCallback(
|
||||||
const save = async (diagram = true) => {
|
async (diagram = true) => {
|
||||||
if (state !== State.SAVING) {
|
if (state !== State.SAVING) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -493,6 +495,8 @@ export default function Editor() {
|
|||||||
notes: notes,
|
notes: notes,
|
||||||
areas: areas,
|
areas: areas,
|
||||||
todos: tasks,
|
todos: tasks,
|
||||||
|
pan: settings.pan,
|
||||||
|
zoom: settings.zoom,
|
||||||
})
|
})
|
||||||
.then((id) => {
|
.then((id) => {
|
||||||
setId(id);
|
setId(id);
|
||||||
@ -511,6 +515,8 @@ export default function Editor() {
|
|||||||
notes: notes,
|
notes: notes,
|
||||||
areas: areas,
|
areas: areas,
|
||||||
todos: tasks,
|
todos: tasks,
|
||||||
|
pan: settings.pan,
|
||||||
|
zoom: settings.zoom,
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setState(State.SAVED);
|
setState(State.SAVED);
|
||||||
@ -527,6 +533,8 @@ export default function Editor() {
|
|||||||
notes: notes,
|
notes: notes,
|
||||||
subjectAreas: areas,
|
subjectAreas: areas,
|
||||||
todos: tasks,
|
todos: tasks,
|
||||||
|
pan: settings.pan,
|
||||||
|
zoom: settings.zoom,
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setState(State.SAVED);
|
setState(State.SAVED);
|
||||||
@ -536,13 +544,39 @@ export default function Editor() {
|
|||||||
setState(State.ERROR);
|
setState(State.ERROR);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
[
|
||||||
|
tables,
|
||||||
|
relationships,
|
||||||
|
notes,
|
||||||
|
areas,
|
||||||
|
types,
|
||||||
|
title,
|
||||||
|
id,
|
||||||
|
state,
|
||||||
|
tasks,
|
||||||
|
settings.zoom,
|
||||||
|
settings.pan,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
useEffect(() => {
|
||||||
const name = window.name.split(" ");
|
const name = window.name.split(" ");
|
||||||
const op = name[0];
|
const op = name[0];
|
||||||
const diagram = window.name === "" || op === "d" || op === "lt";
|
const diagram = window.name === "" || op === "d" || op === "lt";
|
||||||
|
|
||||||
save(diagram);
|
save(diagram);
|
||||||
}, [tables, relationships, notes, areas, types, title, id, state, tasks]);
|
}, [
|
||||||
|
tables,
|
||||||
|
relationships,
|
||||||
|
notes,
|
||||||
|
areas,
|
||||||
|
types,
|
||||||
|
title,
|
||||||
|
id,
|
||||||
|
state,
|
||||||
|
tasks,
|
||||||
|
save,
|
||||||
|
]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = "Editor | drawDB";
|
document.title = "Editor | drawDB";
|
||||||
@ -560,6 +594,7 @@ export default function Editor() {
|
|||||||
setAreas(d.areas);
|
setAreas(d.areas);
|
||||||
setTypes(d.types);
|
setTypes(d.types);
|
||||||
setTasks(d.todos);
|
setTasks(d.todos);
|
||||||
|
setSettings((prev) => ({ ...prev, pan: d.pan, zoom: d.zoom }));
|
||||||
window.name = `d ${d.id}`;
|
window.name = `d ${d.id}`;
|
||||||
} else {
|
} else {
|
||||||
window.name = "";
|
window.name = "";
|
||||||
@ -583,6 +618,11 @@ export default function Editor() {
|
|||||||
setAreas(diagram.areas);
|
setAreas(diagram.areas);
|
||||||
setNotes(diagram.notes);
|
setNotes(diagram.notes);
|
||||||
setTasks(diagram.todos);
|
setTasks(diagram.todos);
|
||||||
|
setSettings((prev) => ({
|
||||||
|
...prev,
|
||||||
|
pan: diagram.pan,
|
||||||
|
zoom: diagram.zoom,
|
||||||
|
}));
|
||||||
setUndoStack([]);
|
setUndoStack([]);
|
||||||
setRedoStack([]);
|
setRedoStack([]);
|
||||||
window.name = `d ${diagram.id}`;
|
window.name = `d ${diagram.id}`;
|
||||||
@ -608,6 +648,11 @@ export default function Editor() {
|
|||||||
setAreas(diagram.subjectAreas);
|
setAreas(diagram.subjectAreas);
|
||||||
setTasks(diagram.tasks);
|
setTasks(diagram.tasks);
|
||||||
setNotes(diagram.notes);
|
setNotes(diagram.notes);
|
||||||
|
setSettings((prev) => ({
|
||||||
|
...prev,
|
||||||
|
pan: diagram.pan,
|
||||||
|
zoom: diagram.zoom,
|
||||||
|
}));
|
||||||
setUndoStack([]);
|
setUndoStack([]);
|
||||||
setRedoStack([]);
|
setRedoStack([]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user