compileDslActionSequenceForExistingWidgetClass function

FFActionNode? compileDslActionSequenceForExistingWidgetClass(
  1. FFProject project, {
  2. required String widgetClassName,
  3. required String targetNodeKey,
  4. required FFActionTriggerType triggerType,
  5. required List<DslAction> actions,
})

Compiles a DSL action sequence for an existing node inside a page/component.

Implementation

FFActionNode? compileDslActionSequenceForExistingWidgetClass(
  FFProject project, {
  required String widgetClassName,
  required String targetNodeKey,
  required FFActionTriggerType triggerType,
  required List<DslAction> actions,
}) {
  final context = _buildExistingWidgetClassCompileContext(
    project,
    widgetClassName: widgetClassName,
  );
  final target = findByKey(context.widgetClass.node, targetNodeKey);
  if (target == null) {
    throw ArgumentError(
      'Target node "$targetNodeKey" was not found on "$widgetClassName".',
    );
  }
  final env = _configureExistingTriggerEnv(context, target, triggerType);
  return context.compiler.compileActionSequence(actions, env);
}