import 'package:flutter/material.dart';

class IconText extends StatelessWidget {
  final String leftImage;
  final String rightImage;
  final IconData leftIcon;
  final IconData rightIcon;
  final String text;
  final TextStyle textStyle;
  final double iconSize;
  final double space;
  final Color iconColor;
  final TextOverflow overFlow;
  final CrossAxisAlignment textAxisAlignment;

  final bool isMax;

  IconText(this.text,
      {this.leftIcon,
      this.rightIcon,
      this.leftImage,
      this.rightImage,
      this.isMax = false,
      this.iconSize = 16,
      this.space = 1,
      this.overFlow = TextOverflow.fade,
      this.textAxisAlignment = CrossAxisAlignment.center,
      this.iconColor = Colors.black,
      this.textStyle});

  @override
  Widget build(BuildContext context) {
    var widgets = <Widget>[];
    if (leftIcon != null || (leftImage != null && leftImage != "")) {
      if (leftIcon != null) {
        widgets.add(
          Padding(
            padding: EdgeInsets.all(2),
            child: Icon(
              leftIcon,
              size: iconSize,
              color: iconColor,
            ),
          ),
        );
      } else if (leftImage != null && leftImage != "") {
        widgets.add(Padding(
          padding: EdgeInsets.all(2),
          child: Image.asset(
            leftImage,
            width: iconSize,
            height: iconSize,
          ),
        ));
      }
    }

    widgets.add(SizedBox(width: space,));

    widgets.add(isMax ? Expanded(
      child: Text(
        text,
        overflow: overFlow,
        maxLines: 2,
        textAlign: TextAlign.start,
        style: textStyle,
      ),
      flex: 1,
    ) : Text(
      text,
      overflow: overFlow,
      textAlign: TextAlign.center,
      style: textStyle,
    ));

    widgets.add(SizedBox(width: space,));

    if (rightIcon != null || rightImage != null && rightImage != "") {
      if (rightIcon != null) {
        widgets.add(
          Padding(
            padding: EdgeInsets.all(2),
            child: Icon(
              rightIcon,
              size: iconSize,
              color: iconColor,
            ),
          ),
        );
      } else if (rightImage != null && rightImage != "") {
        widgets.add(
          Padding(
            padding: EdgeInsets.all(2),
            child: Image.asset(
              rightImage,
              width: iconSize,
              height: iconSize,
            ),
          ),
        );
      }
    }
    return Container(
      child: Row(
        mainAxisAlignment: isMax ? MainAxisAlignment.center : MainAxisAlignment.start,
        crossAxisAlignment: textAxisAlignment,
        mainAxisSize: MainAxisSize.min,
        children: widgets,
      ),
    );
  }
}