hasInteractiveCallbacks function

bool hasInteractiveCallbacks(
  1. InstanceCreationExpression node
)

Check if a widget has interactive callbacks (onTap, onDoubleTap, etc.)

Implementation

bool hasInteractiveCallbacks(InstanceCreationExpression node) {
  final interactiveCallbacks = [
    'onTap',
    'onTapDown',
    'onTapUp',
    'onTapCancel',
    'onDoubleTap',
    'onLongPress',
    'onSecondaryTap',
    'onSecondaryTapDown',
    'onSecondaryTapUp',
    'onSecondaryTapCancel',
  ];

  for (final arg in node.argumentList.arguments) {
    if (arg is NamedExpression) {
      final paramName = arg.name.label.name;
      if (interactiveCallbacks.contains(paramName)) {
        // Check if the callback is not null
        if (arg.expression is! NullLiteral) {
          return true;
        }
      }
    }
  }

  return false;
}