onActionBlockModified method

void onActionBlockModified(
  1. FFActionComponent actionBlock
)

Update the graph when an action block is modified.

Re-analyzes dependencies and updates edges accordingly.

Implementation

void onActionBlockModified(FFActionComponent actionBlock) {
  if (!actionBlock.hasIdentifier() || actionBlock.identifier.key.isEmpty) {
    return;
  }

  final nodeId = NodeIds.actionBlock(actionBlock.identifier.key);
  final node = graph.getNode(nodeId);
  if (node == null) {
    // Node doesn't exist, treat as an add
    onActionBlockAdded(actionBlock);
    return;
  }

  // Remove old dependencies (granular only, action blocks don't have
  // theme/data schema dependencies directly)
  final oldGranularImports =
      node.imports.where(NodeIds.isGranularDependencyNodeId).toList();
  for (final depNodeId in oldGranularImports) {
    graph.removeDependency(nodeId, depNodeId);
    graph.removeIfOrphan(depNodeId);
  }

  // Re-analyze and apply new dependencies
  final deps = ActionBlockDependencies.analyze(actionBlock);
  deps.applyToGraph(graph, nodeId);
}