actionBlock method

ActionBlockHandle actionBlock(
  1. String name, {
  2. Map<String, DslType>? params,
  3. DslType? returns,
  4. Object? actions,
  5. String description = '',
})

Declares an app-level action block.

Implementation

ActionBlockHandle actionBlock(
  String name, {
  Map<String, DslType>? params,
  DslType? returns,
  Object? actions,
  String description = '',
}) {
  _ensureNotPendingRemoval(
    _pendingRemovals,
    name,
    'app action block',
    'removeActionBlock',
  );
  _ensureUnique(_actionBlockNames, name, 'app action block');
  final declaration = ActionBlockDeclaration(
    name: name,
    key: generateRandomAlphaNumericString(),
    scope: ActionBlockLookupScope.app,
    ownerWidgetClassName: null,
    params: params,
    returns: returns,
    actions: normalizeActionSequence(actions, parameterName: 'actions'),
    description: description,
  );
  _actionBlocks.add(declaration);
  return ActionBlockHandle(
    name: name,
    key: declaration.key,
    scope: ActionBlockLookupScope.app,
    ownerWidgetClassName: null,
    params: declaration.params,
    returnType: returns,
    returnName: returns == null ? null : _kActionBlockReturnName,
  );
}