working on text widget

merge-requests/520/head
mosazaid 4 years ago
parent bbe94d2b9b
commit 8ae0a91c05

@ -149,8 +149,6 @@ class _LiveCarePandingListState extends State<LiveCarePandingListScreen> {
fontWeight:
FontWeight
.bold,
backGroundcolor:
Colors.white,
),
SizedBox(
height: 8,
@ -167,8 +165,6 @@ class _LiveCarePandingListState extends State<LiveCarePandingListScreen> {
fontWeight:
FontWeight
.bold,
backGroundcolor:
Colors.white,
),
AppText(
TranslationBase.of(
@ -183,8 +179,6 @@ class _LiveCarePandingListState extends State<LiveCarePandingListScreen> {
fontWeight:
FontWeight
.bold,
backGroundcolor:
Colors.white,
),
SizedBox(
height: 8,

@ -49,7 +49,6 @@ class _VitalSignDetailsWidgetState extends State<LabResultDetailsWidget> {
TranslationBase.of(context).date,
fontSize: SizeConfig.textMultiplier * 1.6,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),
@ -63,7 +62,6 @@ class _VitalSignDetailsWidgetState extends State<LabResultDetailsWidget> {
TranslationBase.of(context).labResult,
fontSize: SizeConfig.textMultiplier * 1.6,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
// height: 60
@ -102,7 +100,7 @@ class _VitalSignDetailsWidgetState extends State<LabResultDetailsWidget> {
'${projectViewModel.isArabic? DateUtils.getWeekDayArabic(date.weekday): DateUtils.getWeekDay(date.weekday)} ,${date.day} ${projectViewModel.isArabic? DateUtils.getMonthArabic(date.month) : DateUtils.getMonth(date.month)} ${date.year}',
fontSize: SizeConfig.textMultiplier * 1.8,
fontWeight: FontWeight.w600,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),
@ -115,7 +113,7 @@ class _VitalSignDetailsWidgetState extends State<LabResultDetailsWidget> {
'${vital.resultValue}',
fontSize: SizeConfig.textMultiplier * 1.8,
fontWeight: FontWeight.w600,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),

@ -59,7 +59,7 @@ class LineChartCurvedState extends State<LineChartCurved> {
widget.title,
fontSize: SizeConfig.textMultiplier * 2.1,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
textAlign: TextAlign.center,
),

@ -51,7 +51,6 @@ class LabResultChartAndDetails extends StatelessWidget {
"Graph Details",
fontSize: SizeConfig.textMultiplier * 2.1,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
SizedBox(height: 8,),

@ -73,7 +73,6 @@ class MyReferralDetailScreen extends StatelessWidget {
.fullName)),
fontSize: SizeConfig.textMultiplier * 2.5,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
),
),
@ -406,7 +405,7 @@ class MyReferralDetailScreen extends StatelessWidget {
title: TranslationBase.of(context).accept,
color: Color(0xFF4BA821),
fontColor: Colors.white,
fontSize: 16,
fontSize: 1.6,
hPadding: 8,
vPadding: 12,
onPressed: () async {
@ -425,14 +424,14 @@ class MyReferralDetailScreen extends StatelessWidget {
),
),
SizedBox(
height: 8,
width: 8,
),
Expanded(
child: AppButton(
title: TranslationBase.of(context).reject,
color: Color(0xFFB9382C),
fontColor: Colors.white,
fontSize: 16,
fontSize: 1.6,
hPadding: 8,
vPadding: 12,
onPressed: () async {
@ -470,7 +469,7 @@ class MyReferralDetailScreen extends StatelessWidget {
"",
fontSize: SizeConfig.textMultiplier * 2.5,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
),
),

@ -48,7 +48,6 @@ class LineChartCurved extends StatelessWidget {
title,
fontSize: SizeConfig.textMultiplier * 2.1,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
textAlign: TextAlign.center,
),

@ -42,7 +42,7 @@ class LineChartCurvedBloodPressure extends StatelessWidget {
title,
fontSize: SizeConfig.textMultiplier * 2.1,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
textAlign: TextAlign.center,
),

@ -64,7 +64,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignBloodPressureWidget> {
TranslationBase.of(context).date,
fontSize: SizeConfig.textMultiplier * 1.5,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
// height: 60,
@ -86,7 +86,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignBloodPressureWidget> {
widget.title2,
fontSize: SizeConfig.textMultiplier * 1.5,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
// height: 60
@ -108,7 +108,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignBloodPressureWidget> {
widget.title3,
fontSize: SizeConfig.textMultiplier * 1.5,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
// height: 60
@ -167,7 +167,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignBloodPressureWidget> {
// textAlign: TextAlign.center,
fontSize: SizeConfig.textMultiplier * 1.6,
fontWeight: FontWeight.w600,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),
@ -181,7 +181,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignBloodPressureWidget> {
// textAlign: TextAlign.center,
fontSize: SizeConfig.textMultiplier * 1.6,
fontWeight: FontWeight.w600,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),
@ -195,7 +195,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignBloodPressureWidget> {
// textAlign: TextAlign.center,
fontSize: SizeConfig.textMultiplier * 1.6,
fontWeight: FontWeight.w600,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),

@ -57,7 +57,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignDetailsWidget> {
TranslationBase.of(context).date,
fontSize: SizeConfig.textMultiplier * 1.6,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
// height: 60,
@ -79,7 +79,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignDetailsWidget> {
widget.title2,
fontSize: SizeConfig.textMultiplier * 1.6,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
// height: 60
@ -125,7 +125,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignDetailsWidget> {
// textAlign: TextAlign.center,
fontSize: SizeConfig.textMultiplier * 1.8,
fontWeight: FontWeight.w600,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),
@ -139,7 +139,7 @@ class _VitalSignDetailsWidgetState extends State<VitalSignDetailsWidget> {
// textAlign: TextAlign.center,
fontSize: SizeConfig.textMultiplier * 1.8,
fontWeight: FontWeight.w600,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
),

@ -63,7 +63,7 @@ class VitalSingChartAndDetials extends StatelessWidget {
"Graph Details",
fontSize: SizeConfig.textMultiplier * 2.1,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
SizedBox(height: 8,),

@ -70,7 +70,7 @@ class VitalSingChartBloodPressure extends StatelessWidget {
"Graph Details",
fontSize: SizeConfig.textMultiplier * 2.3,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.black,
fontFamily: 'Poppins',
),
SizedBox(height: 8,),

@ -68,7 +68,7 @@ class DrAppToastMsg {
radius: 20,
elevation: 10,
textColor: Colors.white,
backgroundColor: Colors.black,
timeInSeconds: 2);
}

@ -110,7 +110,6 @@ class _DoctorReplyWidgetState extends State<DoctorReplyWidget> {
Helpers.capitalize( widget.reply.patientName),
fontSize: SizeConfig.textMultiplier * 2.5,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
),
),

@ -110,7 +110,6 @@ class PatientCard extends StatelessWidget {
Helpers.capitalize(patientInfo.lastName)),
fontSize: 16,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
textOverflow: TextOverflow.ellipsis,
),

@ -99,7 +99,6 @@ class PatientReferralItemWidget extends StatelessWidget {
patientName,
fontSize: SizeConfig.textMultiplier * 2.2,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
color: Colors.black,
fontFamily: 'Poppins',
),

@ -60,7 +60,6 @@ class PatientProfileHeaderNewDesignAppBar extends StatelessWidget
: Helpers.capitalize(patient.patientDetails.fullName),
fontSize: SizeConfig.textMultiplier * 2.2,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
),
),

@ -61,7 +61,6 @@ class PatientProfileHeaderNewDesign extends StatelessWidget {
: Helpers.capitalize(patient.patientDetails.fullName),
fontSize: SizeConfig.textMultiplier * 2.2,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
),
),

@ -79,7 +79,6 @@ class PatientProfileHeaderWhitAppointment extends StatelessWidget {
patient.lastName)) : Helpers.capitalize(patient.patientDetails.fullName),
fontSize: SizeConfig.textMultiplier *2.2,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
),
),

@ -87,7 +87,6 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget
: Helpers.capitalize(patient.patientDetails.fullName),
fontSize: SizeConfig.textMultiplier * 2.2,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
),
),

@ -1,46 +1,86 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// OWNER : Ibrahim albitar
// DATE : 12-04-2020
// DESCRIPTION : Customization for Texts in app
import 'package:hexcolor/hexcolor.dart';
class AppText extends StatefulWidget {
final String data;
final String text;
final String variant;
final Color color;
final FontWeight fontWeight;
final double fontSize;
final String fontFamily;
final int maxLength;
final bool italic;
final double margin;
final double marginTop;
final double marginRight;
final double marginBottom;
final double marginLeft;
final bool visibility;
final TextAlign textAlign;
final Color backGroundcolor;
final int maxLines;
final bool readMore;
final String style;
final bool allowExpand;
final bool visibility;
final TextOverflow textOverflow;
AppText(this.data,
{this.color = Colors.black,
this.fontWeight = FontWeight.normal,
this.fontSize,
this.fontFamily = 'Poppins',
this.margin,
this.marginTop = 0,
this.marginRight = 0,
this.marginBottom = 0,
this.marginLeft = 0,
this.visibility = true,
this.textAlign,
this.textOverflow,
this.backGroundcolor = Colors.white});
final TextDecoration textDecoration;
AppText(
this.text, {
this.color = Colors.black,
this.fontWeight = FontWeight.normal,
this.variant,
this.fontSize,
this.fontFamily = 'Poppins',
this.italic = false,
this.maxLength = 60,
this.margin,
this.marginTop = 0,
this.marginRight = 0,
this.marginBottom = 0,
this.marginLeft = 0,
this.textAlign,
this.maxLines,
this.readMore = false,
this.style,
this.allowExpand = true,
this.visibility = true,
this.textOverflow,
this.textDecoration,
});
@override
_AppTextState createState() => _AppTextState();
}
class _AppTextState extends State<AppText> {
bool hidden = false;
String text = "";
@override
void didUpdateWidget(covariant AppText oldWidget) {
setState(() {
if (widget.style == "overline")
text = widget.text.toUpperCase();
else {
text = widget.text;
}
});
super.didUpdateWidget(oldWidget);
}
@override
void initState() {
hidden = widget.readMore;
if (widget.style == "overline")
text = widget.text.toUpperCase();
else {
text = widget.text;
}
super.initState();
}
@override
Widget build(BuildContext context) {
return Container(
@ -51,19 +91,192 @@ class _AppTextState extends State<AppText> {
right: widget.marginRight,
bottom: widget.marginBottom,
left: widget.marginLeft),
child: Text(
widget.data,
textAlign: widget.textAlign,
overflow: widget.textOverflow ?? TextOverflow.clip,
style: TextStyle(
color: widget.color,
fontWeight: widget.fontWeight,
fontSize: widget.fontSize ?? (SizeConfig.textMultiplier * 2),
fontFamily: widget.fontFamily,
// backgroundColor:widget.backGroundcolor
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Stack(
children: [
Text(
!hidden
? text
: (text.substring(
0,
text.length > widget.maxLength
? widget.maxLength
: text.length)),
textAlign: widget.textAlign,
overflow: widget.maxLines != null
? ((widget.maxLines > 1)
? TextOverflow.fade
: TextOverflow.ellipsis)
: null,
maxLines: widget.maxLines ?? null,
style: widget.style != null
? _getFontStyle().copyWith(
fontStyle: widget.italic ? FontStyle.italic : null,
color: widget.color != null ? widget.color : null,
fontWeight: widget.fontWeight ?? _getFontWeight(),
)
: TextStyle(
fontStyle: widget.italic ? FontStyle.italic : null,
color: widget.textDecoration == null
? widget.color != null
? widget.color
: Colors.black
: null,
fontSize: widget.fontSize ?? _getFontSize(),
letterSpacing:
widget.variant == "overline" ? 1.5 : null,
fontWeight: widget.fontWeight ?? _getFontWeight(),
fontFamily: widget.fontFamily ?? 'Poppins',
decoration: widget.textDecoration),
),
if (widget.readMore && text.length > widget.maxLength && hidden)
Positioned(
bottom: 0,
left: 0,
right: 0,
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).backgroundColor,
Theme.of(context).backgroundColor.withOpacity(0),
],
begin: Alignment.bottomCenter,
end: Alignment.topCenter)),
height: 30,
),
)
],
),
if (widget.allowExpand &&
widget.readMore &&
text.length > widget.maxLength)
Padding(
padding: EdgeInsets.only(top: 8.0, right: 8.0, bottom: 8.0),
child: InkWell(
onTap: () {
setState(() {
hidden = !hidden;
});
},
child: Text(hidden ? "Read More" : "Read less",
style: _getFontStyle().copyWith(
color: HexColor('#FF0000'),
fontWeight: FontWeight.w800,
fontFamily: "Poppins",
)),
),
),
],
),
);
}
TextStyle _getFontStyle() {
switch (widget.style) {
case "headline2":
return Theme.of(context).textTheme.headline2;
case "headline3":
return Theme.of(context).textTheme.headline3;
case "headline4":
return Theme.of(context).textTheme.headline4;
case "headline5":
return Theme.of(context).textTheme.headline5;
case "headline6":
return Theme.of(context).textTheme.headline6;
case "bodyText2":
return Theme.of(context).textTheme.bodyText2;
case "bodyText_15":
return Theme.of(context).textTheme.bodyText2.copyWith(fontSize: 15.0);
case "bodyText1":
return Theme.of(context).textTheme.bodyText1;
case "caption":
return Theme.of(context).textTheme.caption;
case "overline":
return Theme.of(context).textTheme.overline;
case "button":
return Theme.of(context).textTheme.button;
default:
return TextStyle();
}
}
double _getFontSize() {
switch (widget.variant) {
case "heading0":
return 40.0;
case "heading":
return 32.0;
case "heading2":
return 28.0;
case "heading3":
return 18.0;
case "body1":
return 18.0;
case "body2":
return 20.0;
case "body2Link":
return 16.0;
case "caption":
return 16.0;
case "caption2":
return 14.0;
case "bodyText":
return 15.0;
case "bodyText2":
return 17.0;
case "caption3":
return 12.0;
case "caption4":
return 9.0;
case "overline":
return 11.0;
case "date":
return 24.0;
default:
return SizeConfig.textMultiplier * 2;
}
}
FontWeight _getFontWeight() {
if (widget.style == null) {
switch (widget.variant) {
case "heading":
return FontWeight.w900;
case "heading2":
return FontWeight.w900;
case "heading3":
return FontWeight.w900;
case "body1":
return FontWeight.w800;
case "body2":
return FontWeight.w900;
case "body2Link":
return FontWeight.w800;
case "caption":
return FontWeight.w700;
case "caption2":
return FontWeight.w700;
case "bodyText":
return FontWeight.w500;
case "bodyText2":
return FontWeight.w500;
case "caption3":
return FontWeight.w600;
case "caption4":
return FontWeight.w600;
case "overline":
return FontWeight.w800;
case "date":
return FontWeight.w900;
default:
return FontWeight.w500;
}
} else {
return FontWeight.w500;
}
}
}

@ -107,7 +107,7 @@ class _AppButtonState extends State<AppButton> {
shape: RoundedRectangleBorder(
side: BorderSide(
color:
widget.hasBorder ? widget.borderColor : HexColor("#B8382C"),
widget.hasBorder ? widget.borderColor : widget.color,
width: 0.8,
),
borderRadius: BorderRadius.all(Radius.circular(widget.radius))),

Loading…
Cancel
Save