diff --git a/src/components/control_panel.jsx b/src/components/control_panel.jsx
index 70bb757..6f899bc 100644
--- a/src/components/control_panel.jsx
+++ b/src/components/control_panel.jsx
@@ -260,6 +260,10 @@ export default function ControlPanel(props) {
return table;
})
);
+ } else if (a.component === "self") {
+ setTables((prev) =>
+ prev.map((t) => (t.id === a.tid ? { ...t, ...a.undo } : t))
+ );
}
}
setRedoStack((prev) => [...prev, a]);
@@ -438,6 +442,10 @@ export default function ControlPanel(props) {
return table;
})
);
+ } else if (a.component === "self") {
+ setTables((prev) =>
+ prev.map((t) => (t.id === a.tid ? { ...t, ...a.redo } : t))
+ );
}
}
setUndoStack((prev) => [...prev, a]);
diff --git a/src/components/table_overview.jsx b/src/components/table_overview.jsx
index fcb92eb..852200a 100644
--- a/src/components/table_overview.jsx
+++ b/src/components/table_overview.jsx
@@ -721,9 +721,21 @@ export default function TableOverview(props) {
@@ -738,7 +750,21 @@ export default function TableOverview(props) {
key={c}
style={{ backgroundColor: c }}
className="p-3 rounded-full mx-1"
- onClick={() => updateTable(i, { color: c })}
+ onClick={() => {
+ setUndoStack((prev) => [
+ ...prev,
+ {
+ action: Action.EDIT,
+ element: ObjectType.TABLE,
+ component: "self",
+ tid: i,
+ undo: { color: t.color },
+ redo: { color: c },
+ },
+ ]);
+ setRedoStack([]);
+ updateTable(i, { color: c });
+ }}
>
{t.color === c ? (
updateTable(i, { color: c })}
+ onClick={() => {
+ setUndoStack((prev) => [
+ ...prev,
+ {
+ action: Action.EDIT,
+ element: ObjectType.TABLE,
+ component: "self",
+ tid: i,
+ undo: { color: t.color },
+ redo: { color: c },
+ },
+ ]);
+ setRedoStack([]);
+ updateTable(i, { color: c });
+ }}
>