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 }); + }} >