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,
|
|
// ),
|
|
// );
|
|
// }
|
|
// }
|