diff --git a/lib/widgets/charts/app_time_series_chart.dart b/lib/widgets/charts/app_time_series_chart.dart index f897cb27..a44f0bfa 100644 --- a/lib/widgets/charts/app_time_series_chart.dart +++ b/lib/widgets/charts/app_time_series_chart.dart @@ -1,5 +1,5 @@ -import 'package:charts_flutter/flutter.dart' as charts; -import 'package:charts_flutter/flutter.dart'; + import 'package:flutter_charts/flutter_charts.dart' as charts; +// import 'package:charts_flutter/flutter.dart'; import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/widgets/data_display/list/flexible_container.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; /// [chartName] the name of the chart /// [startDate] the start date /// [endDate] the end date -class AppTimeSeriesChart extends StatelessWidget { +class AppTimeSeriesChar,b m extends StatelessWidget { AppTimeSeriesChart({ - Key key, - @required this.seriesList, + Key? key, + required this.seriesList, this.chartName = '', this.startDate, this.endDate, @@ -21,8 +21,8 @@ class AppTimeSeriesChart extends StatelessWidget { final String chartName; final List> seriesList; - final DateTime startDate; - final DateTime endDate; + final DateTime? startDate;sz + final DateTime? endDate; @override Widget build(BuildContext context) { @@ -35,7 +35,7 @@ class AppTimeSeriesChart extends StatelessWidget { height: SizeConfig.realScreenHeight * 0.37, child: Center( child: Container( - child: charts.TimeSeriesChart( + child: charts.LineChart( seriesList, animate: true, behaviors: [ diff --git a/lib/widgets/charts/show_chart.dart b/lib/widgets/charts/show_chart.dart index 4d69cd84..c56c7503 100644 --- a/lib/widgets/charts/show_chart.dart +++ b/lib/widgets/charts/show_chart.dart @@ -6,16 +6,16 @@ import 'package:flutter/material.dart'; import '../../Constants.dart'; class ShowChart extends StatelessWidget { - final String title; - final List timeSeries; - final int indexes; + final String? title; + final List? timeSeries; + final int? indexes; final double horizontalInterval; final bool isWeeklyOrMonthly; ShowChart({this.title, this.timeSeries, this.indexes, this.horizontalInterval = 8.0, this.isWeeklyOrMonthly = false}); - List xAxixs = List(); - List yAxixs = List(); + List xAxixs = []; + List yAxixs = []; double minY = 0; double maxY = 0; @@ -50,7 +50,7 @@ class ShowChart extends StatelessWidget { Padding( padding: const EdgeInsets.all(16.0), child: Text( - title, + title!, style: TextStyle(color: Colors.black, fontSize: 16, letterSpacing: -0.64, fontWeight: FontWeight.w600), textAlign: TextAlign.center, ), @@ -79,19 +79,19 @@ class ShowChart extends StatelessWidget { } getXaxix() { - for (int index = 0; index < timeSeries.length; index++) { - int mIndex = indexes * index; - if (mIndex < timeSeries.length) { + for (int index = 0; index < timeSeries!.length; index++) { + int mIndex = indexes! * index!; + if (mIndex < timeSeries!.length) { xAxixs.add(mIndex); } } } getYaxix() { - for (int index = 0; index < timeSeries.length; index++) { - int mIndex = indexes * index; - if (mIndex < timeSeries.length) { - yAxixs.add(timeSeries[mIndex].sales); + for (int index = 0; index < timeSeries!.length; index++) { + int mIndex = indexes! * index!; + if (mIndex < timeSeries!.length) { + yAxixs.add(timeSeries![mIndex].sales); } } } @@ -102,7 +102,7 @@ class ShowChart extends StatelessWidget { touchTooltipData: LineTouchTooltipData( tooltipBgColor: Colors.white, ), - touchCallback: (touchEvent, LineTouchResponse touchResponse) {}, + touchCallback: (touchEvent, LineTouchResponse? touchResponse) {}, handleBuiltInTouches: true, ), gridData: FlGridData(show: true, drawVerticalLine: true, drawHorizontalLine: true), @@ -117,18 +117,18 @@ class ShowChart extends StatelessWidget { margin: 22, getTitles: (value) { if (isWeeklyOrMonthly) { - return '${timeSeries[value.toInt()].time.day}/ ${timeSeries[value.toInt()].time.month}'; + return '${timeSeries![value.toInt()].time.day}/ ${timeSeries![value.toInt()].time.month}'; } else { - if (timeSeries.length < 15) { - if (timeSeries.length > value.toInt()) { - return '${timeSeries[value.toInt()].time.month}/ ${timeSeries[value.toInt()].time.year}'; + if (timeSeries!.length < 15) { + if (timeSeries!.length > value.toInt()) { + return '${timeSeries![value.toInt()].time.month}/ ${timeSeries![value.toInt()].time.year}'; } else return ''; } else { - if (value.toInt() == 0) return '${timeSeries[value.toInt()].time.month}/ ${timeSeries[value.toInt()].time.year}'; - if (value.toInt() == timeSeries.length - 1) return '${timeSeries[value.toInt()].time.month}/ ${timeSeries[value.toInt()].time.year}'; + if (value.toInt() == 0) return '${timeSeries![value.toInt()].time.month}/ ${timeSeries![value.toInt()].time.year}'; + if (value.toInt() == timeSeries!.length - 1) return '${timeSeries![value.toInt()].time.month}/ ${timeSeries![value.toInt()].time.year}'; if (xAxixs.contains(value.toInt())) { - return '${timeSeries[value.toInt()].time.month}/ ${timeSeries[value.toInt()].time.year}'; + return '${timeSeries![value.toInt()].time.month}/ ${timeSeries![value.toInt()].time.year}'; } } return ''; @@ -184,7 +184,7 @@ class ShowChart extends StatelessWidget { getMin(); getMinY(); try { - increasingY = ((maxY - minY) / timeSeries.length - 1) * 15; + increasingY = ((maxY - minY) / timeSeries!.length - 1) * 15; maxY += increasingY.abs(); minY -= increasingY.abs(); } catch(ex) { @@ -199,7 +199,7 @@ class ShowChart extends StatelessWidget { double getMaxY() { maxY = 0; - timeSeries.forEach((element) { + timeSeries!.forEach((element) { double resultValueDouble = element.sales; if (resultValueDouble > maxY) { lastY = resultValueDouble; @@ -212,8 +212,8 @@ class ShowChart extends StatelessWidget { double getInitialY() { try { - intialY = timeSeries.first.sales; - timeSeries.forEach((element) { + intialY = timeSeries!.first.sales; + timeSeries!.forEach((element) { double resultValueDouble = element.sales; if (resultValueDouble < intialY) intialY = resultValueDouble; }); @@ -226,12 +226,12 @@ class ShowChart extends StatelessWidget { } getMaxX() { - maxX = (timeSeries.length - 1).toDouble(); + maxX = (timeSeries!.length - 1).toDouble(); } double getMin() { minX = 0; - timeSeries.forEach((element) { + timeSeries!.forEach((element) { double resultValueDouble = element.sales; if (resultValueDouble < minX) minX = resultValueDouble; }); @@ -241,7 +241,7 @@ class ShowChart extends StatelessWidget { double getMinY() { minY = 0; - timeSeries.forEach((element) { + timeSeries!.forEach((element) { double resultValueDouble = element.sales; if (resultValueDouble < minY) minY = resultValueDouble; }); @@ -251,15 +251,15 @@ class ShowChart extends StatelessWidget { } List getData(context) { - List spots = List(); - for (int index = 0; index < timeSeries.length; index++) { - spots.add(FlSpot(index.toDouble(), timeSeries[index].sales)); + List spots =[]; + for (int index = 0; index < timeSeries!.length; index++) { + spots.add(FlSpot(index.toDouble(), timeSeries![index].sales)); } final LineChartBarData lineChartBarData1 = LineChartBarData( spots: spots, isCurved: true, - colors: [secondaryColor], + colors: [secondaryColor!], barWidth: 1.5, isStrokeCapRound: true, dotData: FlDotData( diff --git a/lib/widgets/data_display/cards/card_rounded_widget.dart b/lib/widgets/data_display/cards/card_rounded_widget.dart index e490b7b8..acd7528f 100644 --- a/lib/widgets/data_display/cards/card_rounded_widget.dart +++ b/lib/widgets/data_display/cards/card_rounded_widget.dart @@ -11,7 +11,7 @@ class CardRoundedWidget extends StatelessWidget { final double radius; CardRoundedWidget( - {@required this.child, + {required this.child, this.color = Colors.white, this.radius = 10.0, this.padding = 10.0}); diff --git a/lib/widgets/data_display/list/custom_Item.dart b/lib/widgets/data_display/list/custom_Item.dart index d5123e8d..e5eed72f 100644 --- a/lib/widgets/data_display/list/custom_Item.dart +++ b/lib/widgets/data_display/list/custom_Item.dart @@ -13,22 +13,22 @@ import 'package:flutter/material.dart'; /// [child] child of the widget /// [decoration] decoration of the widget class CustomItem extends StatelessWidget { - final IconData startIcon; + final IconData? startIcon; final double startIconSize; - final Color startIconColor; + final Color? startIconColor; final IconData endIcon; final double endIconSize; - final Color endIconColor; + final Color? endIconColor; final bool disabled; - final Function onTap; - final EdgeInsets padding; - final Widget child; - final BoxDecoration decoration; + final Function? onTap; + final EdgeInsets? padding; + final Widget? child; + final BoxDecoration? decoration; CustomItem( - {Key key, + {Key? key, this.startIcon, - this.disabled: false, + this.disabled= false, this.onTap, this.startIconColor, this.endIcon = Icons.chevron_right_sharp, @@ -48,11 +48,11 @@ class CustomItem extends StatelessWidget { decoration: decoration != null ? decoration : BoxDecoration(), child: InkWell( onTap: () { - if (onTap != null) onTap(); + if (onTap != null) onTap!(); }, child: Padding( - padding: padding != null - ? padding + padding: padding! != null + ? padding! : const EdgeInsets.symmetric(horizontal: 24.0, vertical: 16.0), child: Row( children: [ @@ -67,7 +67,7 @@ class CustomItem extends StatelessWidget { ), if (startIcon != null) SizedBox(width: 18.0), Expanded( - child: child, + child: child!, flex: 10, ), endIcon == null diff --git a/lib/widgets/data_display/list/flexible_container.dart b/lib/widgets/data_display/list/flexible_container.dart index a35fa279..8f374ca3 100644 --- a/lib/widgets/data_display/list/flexible_container.dart +++ b/lib/widgets/data_display/list/flexible_container.dart @@ -14,11 +14,11 @@ import 'package:flutter/material.dart'; class FlexibleContainer extends StatelessWidget { final double widthFactor; final double heightFactor; - final EdgeInsets padding; - final Widget child; + final EdgeInsets? padding; + final Widget? child; FlexibleContainer({ - Key key, + Key? key, this.widthFactor = 0.9, this.heightFactor = 1, this.padding, diff --git a/lib/widgets/data_display/medical/LabResult/FlowChartPage.dart b/lib/widgets/data_display/medical/LabResult/FlowChartPage.dart index 8f5a0df9..2167ef7e 100644 --- a/lib/widgets/data_display/medical/LabResult/FlowChartPage.dart +++ b/lib/widgets/data_display/medical/LabResult/FlowChartPage.dart @@ -13,18 +13,18 @@ import 'LineChartCurved.dart'; import 'lab_result_chart_and_detials.dart'; class FlowChartPage extends StatelessWidget { - final PatientLabOrders patientLabOrder; - final String filterName; + final PatientLabOrders? patientLabOrder; + final String? filterName; FlowChartPage({this.patientLabOrder, this.filterName}); @override Widget build(BuildContext context) { return BaseView( - onModelReady: (model) => model.getPatientLabOrdersResults(patientLabOrder: patientLabOrder, procedure: filterName), + onModelReady: (model) => model.getPatientLabOrdersResults(patientLabOrder: patientLabOrder!, procedure: filterName!), builder: (context, model, w) => AppScaffold( isShowAppBar: true, - appBarTitle: filterName, + appBarTitle: filterName!, baseViewModel: model, showNewAppBar: true, showNewAppBarTitle: true, @@ -59,13 +59,13 @@ class FlowChartPage extends StatelessWidget { // labResult: model.labOrdersResultsList, // ), child: ShowChart( - title: filterName, + title: filterName!, timeSeries: model.timeSeries, indexes: model.timeSeries.length ~/ 5.5 ?? 0, ), ), LabResultChartAndDetails( - name: filterName, + name: filterName!, labResult: model.labOrdersResultsList, ), ], diff --git a/lib/widgets/data_display/medical/LabResult/LabResultWidget.dart b/lib/widgets/data_display/medical/LabResult/LabResultWidget.dart index 9a974aef..ceb72f35 100644 --- a/lib/widgets/data_display/medical/LabResult/LabResultWidget.dart +++ b/lib/widgets/data_display/medical/LabResult/LabResultWidget.dart @@ -19,14 +19,14 @@ import 'package:provider/provider.dart'; import 'FlowChartPage.dart'; class LabResultWidget extends StatelessWidget { - final String filterName; - final List patientLabResultList; - final PatientLabOrders patientLabOrder; + final String? filterName; + final List? patientLabResultList; + final PatientLabOrders? patientLabOrder; - LabResult covidLabResult; + late LabResult covidLabResult; - LabResultWidget({Key key, this.filterName, this.patientLabResultList, this.patientLabOrder}) : super(key: key); - ProjectViewModel projectViewModel; + LabResultWidget({Key? key, this.filterName, this.patientLabResultList, this.patientLabOrder}) : super(key: key); + late ProjectViewModel projectViewModel; @override Widget build(BuildContext context) { @@ -42,7 +42,7 @@ class LabResultWidget extends StatelessWidget { // mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - filterName, + filterName!, style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.56, height: 21 / 14), ), SizedBox(width: 16), @@ -55,9 +55,9 @@ class LabResultWidget extends StatelessWidget { 2: FlexColumnWidth(1), 3: FlexColumnWidth(1.7), }, - children: fullData(patientLabResultList, context), + children: fullData(patientLabResultList!, context), ), - checkIfCovidLab(patientLabResultList) + checkIfCovidLab(patientLabResultList!) ? Container( margin: EdgeInsets.only(top: 10.0), child: ButtonTheme( @@ -68,8 +68,8 @@ class LabResultWidget extends StatelessWidget { height: 45.0, child: CustomTextButton( backgroundColor: Color(0xFFc5272d), - disabledForegroundColor: Colors.red[300].withOpacity(0.38), - disabledBackgroundColor: Colors.red[300].withOpacity(0.12), + disabledForegroundColor: Colors.red[300]!.withOpacity(0.38), + disabledBackgroundColor: Colors.red[300]!.withOpacity(0.12), elevation: 0, onPressed: () { showKSADialog(context); @@ -179,7 +179,7 @@ class LabResultWidget extends StatelessWidget { ); tableRow.add( TableRow( - decoration: containerColorRadiusBorderWidth(Colors.grey[100], 12, Colors.grey[300], 0.6), + decoration: containerColorRadiusBorderWidth(Colors.grey[100]!, 12, Colors.grey[300]!, 0.6), children: [ Padding( padding: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 12, right: projectViewModel.isArabic ? 12 : 0), @@ -187,7 +187,7 @@ class LabResultWidget extends StatelessWidget { ), Utils.tableColumnValue(labResultList[i].resultValue + " " + labResultList[i].uOM, isLast: true, mProjectViewModel: projectViewModel), Utils.tableColumnValue(labResultList[i].referanceRange, isLast: true, isCapitable: false, mProjectViewModel: projectViewModel), - !checkIfCovidLab(patientLabResultList) + !checkIfCovidLab(patientLabResultList!) ? InkWell( onTap: () { Navigator.push( @@ -195,7 +195,7 @@ class LabResultWidget extends StatelessWidget { FadePage( page: FlowChartPage( filterName: labResultList[i].description, - patientLabOrder: patientLabOrder, + patientLabOrder: patientLabOrder!, ), ), ); diff --git a/lib/widgets/data_display/medical/LabResult/Lab_Result_details_wideget.dart b/lib/widgets/data_display/medical/LabResult/Lab_Result_details_wideget.dart index 04ed184b..e27f8554 100644 --- a/lib/widgets/data_display/medical/LabResult/Lab_Result_details_wideget.dart +++ b/lib/widgets/data_display/medical/LabResult/Lab_Result_details_wideget.dart @@ -8,7 +8,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class LabResultDetailsWidget extends StatefulWidget { - final List labResult; + final List? labResult; LabResultDetailsWidget({ this.labResult, @@ -27,7 +27,7 @@ class _VitalSignDetailsWidgetState extends State { 0: FlexColumnWidth(2), 1: FlexColumnWidth(1), }, - children: fullData(widget.labResult, context), + children: fullData(widget.labResult!, context), ); } diff --git a/lib/widgets/data_display/medical/LabResult/LineChartCurved.dart b/lib/widgets/data_display/medical/LabResult/LineChartCurved.dart index feea3a00..59bdb3e5 100644 --- a/lib/widgets/data_display/medical/LabResult/LineChartCurved.dart +++ b/lib/widgets/data_display/medical/LabResult/LineChartCurved.dart @@ -76,7 +76,7 @@ class LineChartCurvedState extends State { touchTooltipData: LineTouchTooltipData( tooltipBgColor: Colors.white, ), - touchCallback: (touchEvent, LineTouchResponse touchResponse) {}, + touchCallback: (touchEvent, LineTouchResponse? touchResponse) {}, handleBuiltInTouches: true, ), gridData: FlGridData(show: true, drawVerticalLine: false, drawHorizontalLine: true), @@ -88,15 +88,15 @@ class LineChartCurvedState extends State { rotateAngle: -0, getTitles: (value) { print(value); - DateTime date = DateUtil.convertStringToDate(widget.labResult[value.toInt()].verifiedOnDateTime); - if (widget.labResult.length < 8) { - if (widget.labResult.length > value.toInt()) { + DateTime date = DateUtil.convertStringToDate(widget.labResult![value.toInt()].verifiedOnDateTime); + if (widget.labResult!.length < 8) { + if (widget.labResult!.length > value.toInt()) { return '${date.day}/ ${date.year}'; } else return ''; } else { if (value.toInt() == 0) return '${date.day}/ ${date.year}'; - if (value.toInt() == widget.labResult.length - 1) return '${date.day}/ ${date.year}'; + if (value.toInt() == widget.labResult!.length - 1) return '${date.day}/ ${date.year}'; if (xAxixs.contains(value.toInt())) { return '${date.day}/ ${date.year}'; } @@ -136,7 +136,7 @@ class LineChartCurvedState extends State { // ), ), minX: 0, - maxX: (widget.labResult.length - 1).toDouble(), + maxX: (widget.labResult!.length - 1).toDouble(), maxY: getMaxY(), minY: getMinY(), lineBarsData: getData(), @@ -153,7 +153,7 @@ class LineChartCurvedState extends State { double getMaxY() { double max = 0; - widget.labResult.forEach((element) { + widget.labResult!.forEach((element) { try { double resultValueDouble = double.parse(element.resultValue); if (resultValueDouble > max) max = resultValueDouble; @@ -168,9 +168,9 @@ class LineChartCurvedState extends State { double getMinY() { double min = 0; try { - min = double.parse(widget.labResult[0].resultValue); + min = double.parse(widget.labResult![0].resultValue); - widget.labResult.forEach((element) { + widget.labResult!.forEach((element) { double resultValueDouble = double.parse(element.resultValue); if (resultValueDouble < min) min = resultValueDouble; }); @@ -183,10 +183,10 @@ class LineChartCurvedState extends State { } List getData() { - List spots = List(); - for (int index = 0; index < widget.labResult.length; index++) { + List spots =[]; + for (int index = 0; index < widget.labResult!.length; index++) { try { - var resultValueDouble = double.parse(widget.labResult[index].resultValue); + var resultValueDouble = double.parse(widget.labResult![index].resultValue); print("$index:$resultValueDouble"); spots.add(FlSpot(index.toDouble(), resultValueDouble)); } catch (e) { diff --git a/lib/widgets/data_display/medical/LabResult/lab_result_chart_and_detials.dart b/lib/widgets/data_display/medical/LabResult/lab_result_chart_and_detials.dart index 9c9db151..243829a2 100644 --- a/lib/widgets/data_display/medical/LabResult/lab_result_chart_and_detials.dart +++ b/lib/widgets/data_display/medical/LabResult/lab_result_chart_and_detials.dart @@ -6,9 +6,9 @@ import 'Lab_Result_details_wideget.dart'; class LabResultChartAndDetails extends StatelessWidget { LabResultChartAndDetails({ - Key key, - @required this.labResult, - @required this.name, + Key? key, + required this.labResult, + required this.name, }) : super(key: key); final List labResult; diff --git a/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart b/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart index 3436523d..f2a2b867 100644 --- a/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart +++ b/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart @@ -15,13 +15,13 @@ import 'package:provider/provider.dart'; import 'LabResultWidget.dart'; class LaboratoryResultWidget extends StatefulWidget { - final GestureTapCallback onTap; - final String billNo; - final String details; - final String orderNo; - final PatientLabOrders patientLabOrder; + final GestureTapCallback? onTap; + final String? billNo; + final String? details; + final String? orderNo; + final PatientLabOrders? patientLabOrder; - const LaboratoryResultWidget({Key key, this.onTap, this.billNo, this.details, this.orderNo, this.patientLabOrder}) : super(key: key); + const LaboratoryResultWidget({Key? key, this.onTap, this.billNo, this.details, this.orderNo, this.patientLabOrder}) : super(key: key); @override _LaboratoryResultWidgetState createState() => _LaboratoryResultWidgetState(); @@ -30,13 +30,13 @@ class LaboratoryResultWidget extends StatefulWidget { class _LaboratoryResultWidgetState extends State { bool _isShowMore = true; bool _isShowMoreGeneral = true; - ProjectViewModel projectViewModel; + late ProjectViewModel projectViewModel; @override Widget build(BuildContext context) { projectViewModel = Provider.of(context); return BaseView( - onModelReady: (model) => model.getPatientLabResult(isVidaPlus: Utils.isVidaPlusProject(projectViewModel, num.parse(widget.patientLabOrder.projectID)), patientLabOrder: widget.patientLabOrder), + onModelReady: (model) => model.getPatientLabResult(isVidaPlus: Utils.isVidaPlusProject(projectViewModel, int.parse(widget.patientLabOrder!.projectID)), patientLabOrder: widget.patientLabOrder!), builder: (_, model, w) => NetworkBaseView( baseViewModel: model, child: Column( @@ -44,20 +44,20 @@ class _LaboratoryResultWidgetState extends State { children: [ DoctorHeader( headerModel: HeaderModel( - widget.patientLabOrder.doctorName, - widget.patientLabOrder.doctorID, - widget.patientLabOrder.doctorImageURL, - widget.patientLabOrder.speciality, - widget.billNo, - widget.patientLabOrder.projectName, - widget.patientLabOrder.orderDate, - null, - widget.patientLabOrder.nationalityFlagURL, - widget.patientLabOrder.doctorRate, - widget.patientLabOrder.actualDoctorRate, - widget.patientLabOrder.noOfPatientsRate, + widget.patientLabOrder!.doctorName, + widget.patientLabOrder!.doctorID, + widget.patientLabOrder!.doctorImageURL, + widget.patientLabOrder!.speciality, + widget.billNo!, + widget.patientLabOrder!.projectName, + widget.patientLabOrder!.orderDate, + "", + widget.patientLabOrder!.nationalityFlagURL, + widget.patientLabOrder!.doctorRate, + widget.patientLabOrder!.actualDoctorRate, + widget.patientLabOrder!.noOfPatientsRate, projectViewModel.user.emailAddress), - onTap: widget.onTap, + onTap: widget.onTap!, ), SizedBox(height: 10), if (model.labResultLists.isNotEmpty) diff --git a/lib/widgets/new_design/doctor_header.dart b/lib/widgets/new_design/doctor_header.dart index cbd6dde2..c2239690 100644 --- a/lib/widgets/new_design/doctor_header.dart +++ b/lib/widgets/new_design/doctor_header.dart @@ -16,31 +16,31 @@ import 'package:provider/provider.dart'; class DoctorHeader extends StatelessWidget { final HeaderModel headerModel; - final VoidCallback onTap; - final VoidCallback onRatingAndReviewTap; + final VoidCallback? onTap; + final VoidCallback? onRatingAndReviewTap; final bool showConfirmMessageDialog; - final String buttonTitle; + final String? buttonTitle; final String? buttonIcon; final bool isNeedToShowButton; final bool isShowName; DoctorHeader( {Key? key, - required this.headerModel, - required this.buttonTitle, - required this.onTap, + required this.headerModel, + this.buttonTitle, + this.onTap, this.isNeedToShowButton = true, this.isShowName = false, this.buttonIcon, this.showConfirmMessageDialog = true, - required this.onRatingAndReviewTap}) + this.onRatingAndReviewTap}) : super(key: key); late ProjectViewModel projectViewModel; @override Widget build(BuildContext context) { - String _speciality = (headerModel?.speciality ?? []).length > 0 ? headerModel.speciality.first : ""; + String _speciality = (headerModel?.speciality ?? []).length > 0 ? headerModel!.speciality.first : ""; projectViewModel = Provider.of(context); return Container( color: Colors.white, @@ -52,7 +52,7 @@ class DoctorHeader extends StatelessWidget { Padding( padding: EdgeInsets.only(left: 21, right: 21, bottom: 12), child: Text( - headerModel.doctorName, + headerModel!.doctorName!, maxLines: 1, style: TextStyle( fontSize: 24, fontFamily: (projectViewModel.isArabic ? 'Cairo' : 'Poppins'), fontWeight: FontWeight.w700, color: Color(0xff2B353E), letterSpacing: -1.44, height: 35 / 24), @@ -65,8 +65,8 @@ class DoctorHeader extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ LargeAvatar( - name: headerModel.doctorName, - url: headerModel.doctorImageURL, + name: headerModel!.doctorName, + url: headerModel!.doctorImageURL, width: 51, height: 51, ), @@ -166,9 +166,9 @@ class DoctorHeader extends StatelessWidget { ? InkWell( onTap: () { if (showConfirmMessageDialog) - showConfirmMessage(context, onTap, headerModel.email); + showConfirmMessage(context, onTap!, headerModel.email); else - onTap(); + onTap!(); }, child: Container( padding: EdgeInsets.only(top: 10, bottom: 10, right: 21, left: 15), @@ -180,7 +180,7 @@ class DoctorHeader extends StatelessWidget { SvgPicture.asset(buttonIcon ?? 'assets/images/new/email.svg', width: 19.0), SizedBox(width: 6), Text( - buttonTitle == null ? TranslationBase.of(context).sendEmail : buttonTitle, + buttonTitle! == null ? TranslationBase.of(context).sendEmail : buttonTitle!, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.64, height: 1), ), ],