extractButtonStyleSize function

Dimensions? extractButtonStyleSize(
  1. Expression styleExpr
)

Extract button size from ButtonStyle (minimumSize or fixedSize)

Implementation

Dimensions? extractButtonStyleSize(Expression styleExpr) {
  // Check for ButtonStyle constructor or method calls like .copyWith
  if (styleExpr is MethodInvocation) {
    // Handle ButtonStyle.copyWith() or similar patterns
    for (final arg in styleExpr.argumentList.arguments) {
      if (arg is NamedExpression) {
        final paramName = arg.name.label.name;
        if (paramName == 'minimumSize' || paramName == 'fixedSize') {
          final dimensions = extractMaterialStatePropertySize(arg.expression);
          return dimensions;
        }
      }
    }
  } else if (styleExpr is InstanceCreationExpression) {
    // Handle ButtonStyle() constructor
    for (final arg in styleExpr.argumentList.arguments) {
      if (arg is NamedExpression) {
        final paramName = arg.name.label.name;
        if (paramName == 'minimumSize' || paramName == 'fixedSize') {
          final dimensions = extractMaterialStatePropertySize(arg.expression);
          return dimensions;
        }
      }
    }
  }
  return null;
}