import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';

import 'custom_image.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.only(left: 2.w),
            child: Icon(
              leftIcon,
              size: iconSize,
              color: iconColor,
            ),
          ),
        );
      } else if (leftImage != null && leftImage != "") {
        widgets.add(Padding(
          padding: EdgeInsets.only(left: 2.w),
          child: leftImage.startsWith("http")
              ? MImage(
                  leftImage,
                  width: iconSize,
                  height: iconSize,
                )
              : (leftImage.endsWith(".svg")
                  ? SvgPicture.asset(
                      leftImage,
                      width: iconSize,
                      height: iconSize,
                    )
                  : 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.only(left: 2.w),
            child: Icon(
              rightIcon,
              size: iconSize,
              color: iconColor,
            ),
          ),
        );
      } else if (rightImage != null && rightImage != "") {
        widgets.add(
          Padding(
            padding: EdgeInsets.only(left: 2.w),
            child: rightImage.startsWith("http")
                ? Image.network(
                    rightImage,
                    width: iconSize,
                    height: iconSize,
                  )
                : (rightImage.endsWith(".svg")
                    ? SvgPicture.asset(
                        rightImage,
                        width: iconSize,
                        height: iconSize,
                      )
                    : Image.asset(
                        rightImage,
                        width: iconSize,
                        height: iconSize,
                      )),
          ),
        );
      }
    }
    return Container(
      child: Row(
        mainAxisAlignment:
            isMax ? MainAxisAlignment.center : MainAxisAlignment.start,
        crossAxisAlignment: textAxisAlignment,
        mainAxisSize: MainAxisSize.min,
        children: widgets,
      ),
    );
  }
}