NomoButton.icon constructor

NomoButton.icon(
  1. {required dynamic onPressed,
  2. required dynamic icon,
  3. ButtonSize? size,
  4. dynamic color,
  5. dynamic disabledColor,
  6. dynamic highlightColor,
  7. dynamic splashColor,
  8. dynamic padding = ButtonConstants.padding,
  9. dynamic margin = ButtonConstants.margin,
  10. dynamic borderRadius = ButtonConstants.borderRadius,
  11. dynamic border = ButtonConstants.border,
  12. double elevation = ButtonConstants.elevation,
  13. bool isEnabled = ButtonConstants.isEnabled,
  14. bool isLoading = ButtonConstants.isLoading,
  15. dynamic loadingWidget}
)

Implementation

factory NomoButton.icon({
  required VoidCallback onPressed,
  required Widget icon,
  ButtonSize? size,
  Color? color,
  Color? disabledColor,
  Color? highlightColor,
  Color? splashColor,
  EdgeInsetsGeometry padding = ButtonConstants.padding,
  EdgeInsetsGeometry margin = ButtonConstants.margin,
  BorderRadiusGeometry borderRadius = ButtonConstants.borderRadius,
  BorderSide border = ButtonConstants.border,
  double elevation = ButtonConstants.elevation,
  bool isEnabled = ButtonConstants.isEnabled,
  bool isLoading = ButtonConstants.isLoading,
  Widget? loadingWidget,
}) {
  double? width;
  double? height;

  switch (size) {
    case ButtonSize.small:
      width = ButtonConstants.smallIconButtonWidth;
      height = ButtonConstants.smallIconButtonHeight;
      break;
    case ButtonSize.medium:
      width = ButtonConstants.mediumIconButtonWidth;
      height = ButtonConstants.mediumIconButtonHeight;
      break;
    case ButtonSize.large:
      width = ButtonConstants.largeIconButtonWidth;
      height = ButtonConstants.largeIconButtonHeight;
      break;
    default:
      break;
  }
  return NomoButton(
    onPressed: onPressed,
    color: color,
    disabledColor: disabledColor,
    highlightColor: highlightColor,
    splashColor: splashColor,
    padding: padding,
    margin: margin,
    borderRadius: borderRadius,
    border: border,
    elevation: elevation,
    isEnabled: isEnabled,
    width: width,
    height: height,
    isLoading: isLoading,
    loadingWidget: loadingWidget,
    child: icon,
  );
}