// import 'package:auto_size_text/auto_size_text.dart'; import 'package:mohem_flutter_app/theme/colors.dart'; import 'package:mohem_flutter_app/utils/utils.dart'; import 'package:flutter/material.dart'; import 'package:sizer/sizer.dart'; enum TxtType { small, normal, heading1, heading2, heading3, appBar, } class Txt extends StatelessWidget { String text; int? maxLines; double? fontSize; Color? color; bool? bold; bool? isUnderline; bool? isFlatButton; double? pedding; TextAlign? textAlign; FontWeight? fontWeight; Function? onTap; TxtType txtType; Txt(this.text, {this.maxLines, this.color, this.bold, this.fontSize, this.isUnderline, this.isFlatButton, this.pedding, this.textAlign, this.fontWeight, this.onTap, this.txtType = TxtType.normal}); @override Widget build(BuildContext context) { if (isFlatButton != null) return Padding( padding: EdgeInsets.only(right: pedding ?? 0, left: pedding ?? 0), child: InkWell( onTap: () { onTap!(); }, customBorder: inkWellCorner(r: 4), child: Padding( padding: const EdgeInsets.only( left: 14, right: 14, top: 6, bottom: 6, ), child: getText(), ), ), ); else return getText(); } Widget getText() { return Material( type: MaterialType.transparency, child: Text( text, maxLines: maxLines, textAlign: textAlign, overflow: maxLines != null ? TextOverflow.ellipsis : null, style: TextStyle( fontSize: fontSize ?? (txtType == TxtType.small ? 8.sp : txtType == TxtType.normal ? 10.sp : txtType == TxtType.heading1 ? 11.sp : txtType == TxtType.heading2 ? 12.sp : txtType == TxtType.heading3 ? 13.sp : txtType == TxtType.appBar ? 14.sp : 8.sp), color: color ?? (txtType == TxtType.appBar ? Colors.black : txtType == TxtType.heading1 ? headingColor : txtType == TxtType.heading2 ? headingColor : txtType == TxtType.heading3 ? headingColor : null), fontWeight: (fontWeight != null) ? fontWeight : ((bold != null) ? FontWeight.bold : (txtType == TxtType.appBar ? FontWeight.bold : txtType == TxtType.heading1 ? FontWeight.bold : txtType == TxtType.heading2 ? FontWeight.bold : txtType == TxtType.heading3 ? FontWeight.bold : null)), decoration: (isUnderline != null) ? TextDecoration.underline : null, ), ), ); } } // class TxtAuto extends StatelessWidget { // String text; // int? maxLines; // double? fontSize; // Color? color; // bool? bold; // bool? isUnderline; // bool? isFlatButton; // double? pedding; // TextAlign? textAlign; // // TxtAuto( // this.text, { // this.maxLines, // this.color, // this.bold, // this.fontSize, // this.isUnderline, // this.isFlatButton, // this.pedding, // this.textAlign, // }); // // @override // Widget build(BuildContext context) { // if (isFlatButton != null) // return Padding( // padding: EdgeInsets.only(right: pedding ?? 0, left: pedding ?? 0), // child: InkWell( // onTap: () {}, // customBorder: inkWellCorner(r: 4), // child: Padding( // padding: const EdgeInsets.only( // left: 14, // right: 14, // top: 6, // bottom: 6, // ), // child: getText(), // ), // ), // ); // else // return getText(); // } // // Widget getText() { // return AutoSizeText( // text, // maxLines: maxLines, // textAlign: textAlign, // overflow: maxLines != null ? TextOverflow.ellipsis : null, // style: TextStyle( // fontSize: fontSize, // color: color, // fontWeight: (bold != null) ? FontWeight.bold : null, // decoration: (isUnderline != null) ? TextDecoration.underline : null, // ), // ); // } // }