update method

void update(
  1. BuildContext context,
  2. String elementId,
  3. T newElement
)

封装便捷的更新钩子。从 EditorState 获取最新元素作为 oldElement, 避免闭包捕获的过期引用导致 Undo 链断裂。

Implementation

void update(BuildContext context, String elementId, T newElement) {
  final state = context.read<EditorState>();
  final current = state.elements.where((e) => e.id == elementId).firstOrNull;
  if (current == null) return;
  state.execute(
    UpdateElementCommand(
      elementId: elementId,
      oldElement: current.element,
      newElement: newElement,
    ),
  );
}