undo method
Implementation
@override
void undo(EditorState state) {
final elements = List<EditorElement>.from(state.elements);
if (parentId != null) {
final pIndex = elements.indexWhere((e) => e.id == parentId);
if (pIndex != -1) {
final parent = elements[pIndex].element;
if (parent is KoiTicketForEachElement) {
final newTemplates = List<KoiTicketElement>.from(parent.templates);
if (element.element is KoiTicketElement) {
newTemplates.remove(element.element as KoiTicketElement);
}
elements[pIndex] = elements[pIndex].copyWith(
element: KoiTicketForEachElement(
listKey: parent.listKey,
templates: newTemplates,
),
);
}
}
} else {
elements.removeWhere((e) => e.id == element.id);
}
state.updateElements(elements);
if (state.selectedElementId == element.id) {
state.selectElement(null);
}
}