hasInteractiveCallbacks function
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;
}