You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			171 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			171 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Dart
		
	
| // 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,
 | |
| //       ),
 | |
| //     );
 | |
| //   }
 | |
| // }
 |