buildButtonContent method

Widget buildButtonContent(
  1. TWidgetTheme baseTheme, {
  2. IconData? icon,
  3. String? text,
  4. bool isLoading = false,
  5. String loadingText = 'Loading...',
  6. Widget? child,
  7. Set<WidgetState> states = const {},
})

Implementation

Widget buildButtonContent(
  TWidgetTheme baseTheme, {
  IconData? icon,
  String? text,
  bool isLoading = false,
  String loadingText = 'Loading...',
  Widget? child,
  Set<WidgetState> states = const {},
}) {
  final resolvedFgColor = baseTheme.foregroundState.resolve(states);

  return Row(
    mainAxisSize: size.minW.isInfinite ? MainAxisSize.max : MainAxisSize.min,
    mainAxisAlignment: MainAxisAlignment.center,
    children: [
      if (isLoading)
        SizedBox(
            width: size.icon,
            height: size.icon,
            child: CircularProgressIndicator(strokeWidth: 2, valueColor: AlwaysStoppedAnimation(resolvedFgColor)))
      else if (icon != null)
        Icon(icon, size: size.icon),
      if (text?.isNotEmpty ?? false) ...[
        if (icon != null || isLoading) SizedBox(width: size.spacing),
        Text(isLoading ? loadingText : text!),
      ],
      if (child != null) child,
    ],
  );
}