@ -5,8 +5,6 @@ import 'package:flutter/cupertino.dart';
import ' package:flutter/material.dart ' ;
import ' package:flutter_staggered_animations/flutter_staggered_animations.dart ' ;
import ' package:hmg_patient_app_new/core/app_assets.dart ' ;
import ' package:hmg_patient_app_new/core/app_state.dart ' ;
import ' package:hmg_patient_app_new/core/dependencies.dart ' ;
import ' package:hmg_patient_app_new/core/utils/size_utils.dart ' ;
import ' package:hmg_patient_app_new/core/utils/utils.dart ' ;
import ' package:hmg_patient_app_new/extensions/string_extensions.dart ' ;
@ -20,6 +18,7 @@ import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import ' package:hmg_patient_app_new/presentation/appointments/appointment_payment_page.dart ' ;
import ' package:hmg_patient_app_new/presentation/appointments/widgets/appointment_checkin_bottom_sheet.dart ' ;
import ' package:hmg_patient_app_new/presentation/appointments/widgets/appointment_doctor_card.dart ' ;
import ' package:hmg_patient_app_new/presentation/lab/collapsing_list_view.dart ' ;
import ' package:hmg_patient_app_new/presentation/prescriptions/prescription_detail_page.dart ' ;
import ' package:hmg_patient_app_new/presentation/prescriptions/prescriptions_list_page.dart ' ;
import ' package:hmg_patient_app_new/theme/colors.dart ' ;
@ -62,334 +61,333 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
prescriptionsViewModel = Provider . of < PrescriptionsViewModel > ( context ) ;
return Scaffold (
backgroundColor: AppColors . bgScaffoldColor ,
appBar: AppBar (
title: " Appointment Details " . needTranslation . toText18 ( ) ,
backgroundColor: AppColors . bgScaffoldColor ,
) ,
body: Column (
children: [
Expanded (
child: SingleChildScrollView (
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
Row (
mainAxisAlignment: MainAxisAlignment . spaceBetween ,
children: [
" Appointment Details " . needTranslation . toText20 ( isBold: true ) ,
if ( AppointmentType . isArrived ( widget . patientAppointmentHistoryResponseModel ) )
CustomButton (
text: " Report " . needTranslation ,
onPressed: ( ) { } ,
backgroundColor: AppColors . secondaryLightRedColor ,
borderColor: AppColors . secondaryLightRedColor ,
textColor: AppColors . primaryRedColor ,
fontSize: 14 ,
fontWeight: FontWeight . w500 ,
borderRadius: 12 ,
padding: EdgeInsets . fromLTRB ( 10 , 0 , 10 , 0 ) ,
height: 40. h ,
iconSize: 16. h ,
icon: AppAssets . report_icon ,
iconColor: AppColors . primaryRedColor ,
)
] ,
) ,
SizedBox ( height: 24. h ) ,
AppointmentDoctorCard (
patientAppointmentHistoryResponseModel: widget . patientAppointmentHistoryResponseModel ,
onAskDoctorTap: ( ) { } ,
onCancelTap: ( ) async {
showCommonBottomSheet ( context ,
child: Utils . getLoadingWidget ( ) ,
callBackFunc: ( str ) { } ,
title: " " ,
height: ResponsiveExtension . screenHeight * 0.3 ,
isCloseButtonVisible: false ,
isDismissible: false ,
isFullScreen: false ) ;
await myAppointmentsViewModel . cancelAppointment (
patientAppointmentHistoryResponseModel: widget . patientAppointmentHistoryResponseModel ,
onSuccess: ( apiResponse ) {
Navigator . of ( context ) . pop ( ) ;
showCommonBottomSheet ( context ,
child: Utils . getSuccessWidget ( loadingText: " Appointment Cancelled Successfully " . needTranslation ) ,
callBackFunc: ( str ) { } ,
title: " " ,
height: ResponsiveExtension . screenHeight * 0.3 ,
isCloseButtonVisible: false ,
isDismissible: false ,
isFullScreen: false ,
isSuccessDialog: true ) ;
} ) ;
Navigator . of ( context ) . pop ( ) ;
Navigator . of ( context ) . pop ( ) ;
} ,
onRescheduleTap: ( ) { } ,
) ,
SizedBox ( height: 16. h ) ,
! AppointmentType . isArrived ( widget . patientAppointmentHistoryResponseModel )
? Column (
children: [
Container (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
color: AppColors . whiteColor ,
borderRadius: 20. h ,
hasShadow: false ,
child: CollapsingListView (
title: " Appointment Details " . needTranslation ,
child: SingleChildScrollView (
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
Row (
mainAxisAlignment: MainAxisAlignment . spaceBetween ,
children: [
" Appointment Details " . needTranslation . toText20 ( isBold: true ) ,
if ( AppointmentType . isArrived ( widget . patientAppointmentHistoryResponseModel ) )
CustomButton (
text: " Report " . needTranslation ,
onPressed: ( ) { } ,
backgroundColor: AppColors . secondaryLightRedColor ,
borderColor: AppColors . secondaryLightRedColor ,
textColor: AppColors . primaryRedColor ,
fontSize: 14 ,
fontWeight: FontWeight . w500 ,
borderRadius: 12 ,
padding: EdgeInsets . fromLTRB ( 10 , 0 , 10 , 0 ) ,
height: 40. h ,
iconSize: 16. h ,
icon: AppAssets . report_icon ,
iconColor: AppColors . primaryRedColor ,
)
] ,
) ,
SizedBox ( height: 24. h ) ,
AppointmentDoctorCard (
patientAppointmentHistoryResponseModel: widget . patientAppointmentHistoryResponseModel ,
onAskDoctorTap: ( ) { } ,
onCancelTap: ( ) async {
showCommonBottomSheet ( context ,
child: Utils . getLoadingWidget ( ) ,
callBackFunc: ( str ) { } ,
title: " " ,
height: ResponsiveExtension . screenHeight * 0.3 ,
isCloseButtonVisible: false ,
isDismissible: false ,
isFullScreen: false ) ;
await myAppointmentsViewModel . cancelAppointment (
patientAppointmentHistoryResponseModel: widget . patientAppointmentHistoryResponseModel ,
onSuccess: ( apiResponse ) {
Navigator . of ( context ) . pop ( ) ;
showCommonBottomSheet ( context ,
child: Utils . getSuccessWidget ( loadingText: " Appointment Cancelled Successfully " . needTranslation ) ,
callBackFunc: ( str ) { } ,
title: " " ,
height: ResponsiveExtension . screenHeight * 0.3 ,
isCloseButtonVisible: false ,
isDismissible: false ,
isFullScreen: false ,
isSuccessDialog: true ) ;
} ) ;
Navigator . of ( context ) . pop ( ) ;
Navigator . of ( context ) . pop ( ) ;
} ,
onRescheduleTap: ( ) { } ,
) ,
SizedBox ( height: 16. h ) ,
! AppointmentType . isArrived ( widget . patientAppointmentHistoryResponseModel )
? Column (
children: [
Container (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
color: AppColors . whiteColor ,
borderRadius: 20. h ,
hasShadow: false ,
) ,
child: Padding (
padding: EdgeInsets . all ( 16. h ) ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
Row (
children: [
" Appointment Status " . needTranslation . toText16 ( isBold: true ) ,
] ,
) ,
SizedBox ( height: 4. h ) ,
( ! AppointmentType . isConfirmed ( widget . patientAppointmentHistoryResponseModel )
? " Not Confirmed " . needTranslation . toText12 ( color: AppColors . primaryRedColor , fontWeight: FontWeight . w500 )
: " Confirmed " . needTranslation . toText12 ( color: AppColors . successColor , fontWeight: FontWeight . w500 ) ) ,
SizedBox ( height: 16. h ) ,
Stack (
children: [
ClipRRect (
clipBehavior: Clip . hardEdge ,
borderRadius: BorderRadius . circular ( 24 ) ,
child: Image . network (
" https://maps.googleapis.com/maps/api/staticmap?center= ${ widget . patientAppointmentHistoryResponseModel . latitude } , ${ widget . patientAppointmentHistoryResponseModel . longitude } &zoom=14&size=350x165&maptype=roadmap&markers=color:red%7C ${ widget . patientAppointmentHistoryResponseModel . latitude } , ${ widget . patientAppointmentHistoryResponseModel . longitude } &key=AIzaSyB6TERnxIr0yJ3qG4ULBZbu0sAD4tGqtng " ,
fit: BoxFit . contain ,
) ,
) ,
Positioned (
bottom: 0 ,
child: SizedBox (
width: MediaQuery . of ( context ) . size . width * 0.785 ,
child: CustomButton (
text: " Get Directions " . needTranslation ,
onPressed: ( ) {
MapsLauncher . launchCoordinates ( double . parse ( widget . patientAppointmentHistoryResponseModel . latitude ! ) ,
double . parse ( widget . patientAppointmentHistoryResponseModel . longitude ! ) , widget . patientAppointmentHistoryResponseModel . projectName ) ;
} ,
backgroundColor: AppColors . textColor . withOpacity ( 0.8 ) ,
borderColor: AppointmentType . getNextActionButtonColor ( widget . patientAppointmentHistoryResponseModel . nextAction ) . withOpacity ( 0.01 ) ,
textColor: AppColors . whiteColor ,
fontSize: 14 ,
fontWeight: FontWeight . w500 ,
borderRadius: 12. h ,
padding: EdgeInsets . fromLTRB ( 10 , 0 , 10 , 0 ) ,
height: 40. h ,
icon: AppAssets . directions_icon ,
iconColor: AppColors . whiteColor ,
iconSize: 13. h ,
) . paddingAll ( 12. h ) ,
) ,
) ,
] ,
) ,
] ,
) ,
) ,
) ,
child: Padding (
padding: EdgeInsets . all ( 16. h ) ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
SizedBox ( height: 16. h ) ,
Container (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
color: AppColors . whiteColor ,
borderRadius: 20. h ,
hasShadow: false ,
) ,
child: Row (
mainAxisSize: MainAxisSize . max ,
children: [
Row (
Utils . buildSvgWithAssets ( icon: AppAssets . prescription_reminder_icon , width: 35. h , height: 35. h ) ,
SizedBox ( width: 8. h ) ,
Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
" Appointment Status " . needTranslation . toText16 ( isBold: true ) ,
LocaleKeys . setReminder . tr ( context: context ) . toText13 ( isBold: true ) ,
" Notify me before the appointment " . needTranslation . toText11 ( color: AppColors . textColorLight , weight: FontWeight . w500 ) ,
] ,
) ,
SizedBox ( height: 4. h ) ,
( ! AppointmentType . isConfirmed ( widget . patientAppointmentHistoryResponseModel )
? " Not Confirmed " . needTranslation . toText12 ( color: AppColors . primaryRedColor , fontWeight: FontWeight . w500 )
: " Confirmed " . needTranslation . toText12 ( color: AppColors . successColor , fontWeight: FontWeight . w500 ) ) ,
SizedBox ( height: 16. h ) ,
Stack (
children: [
ClipRRect (
clipBehavior: Clip . hardEdge ,
borderRadius: BorderRadius . circular ( 24 ) ,
child: Image . network (
" https://maps.googleapis.com/maps/api/staticmap?center= ${ widget . patientAppointmentHistoryResponseModel . latitude } , ${ widget . patientAppointmentHistoryResponseModel . longitude } &zoom=14&size=350x165&maptype=roadmap&markers=color:red%7C ${ widget . patientAppointmentHistoryResponseModel . latitude } , ${ widget . patientAppointmentHistoryResponseModel . longitude } &key=AIzaSyB6TERnxIr0yJ3qG4ULBZbu0sAD4tGqtng " ,
fit: BoxFit . contain ,
) ,
) ,
Positioned (
bottom: 0 ,
child: SizedBox (
width: MediaQuery . of ( context ) . size . width * 0.785 ,
child: CustomButton (
text: " Get Directions " . needTranslation ,
onPressed: ( ) {
MapsLauncher . launchCoordinates ( double . parse ( widget . patientAppointmentHistoryResponseModel . latitude ! ) ,
double . parse ( widget . patientAppointmentHistoryResponseModel . longitude ! ) , widget . patientAppointmentHistoryResponseModel . projectName ) ;
} ,
backgroundColor: AppColors . textColor . withOpacity ( 0.8 ) ,
borderColor: AppointmentType . getNextActionButtonColor ( widget . patientAppointmentHistoryResponseModel . nextAction ) . withOpacity ( 0.01 ) ,
textColor: AppColors . whiteColor ,
fontSize: 14 ,
fontWeight: FontWeight . w500 ,
borderRadius: 12. h ,
padding: EdgeInsets . fromLTRB ( 10 , 0 , 10 , 0 ) ,
height: 40. h ,
icon: AppAssets . directions_icon ,
iconColor: AppColors . whiteColor ,
iconSize: 13. h ,
) . paddingAll ( 12. h ) ,
) ,
) ,
] ,
const Spacer ( ) ,
Switch (
activeColor: AppColors . successColor ,
activeTrackColor: AppColors . successColor . withValues ( alpha: . 15 ) ,
value: widget . patientAppointmentHistoryResponseModel . hasReminder ! ,
onChanged: ( newValue ) {
setState ( ( ) {
myAppointmentsViewModel . setAppointmentReminder ( newValue , widget . patientAppointmentHistoryResponseModel ) ;
} ) ;
} ,
) ,
] ,
) ,
) ,
) ,
SizedBox ( height: 16. h ) ,
Container (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
color: AppColors . whiteColor ,
borderRadius: 20. h ,
hasShadow: false ,
) . paddingSymmetrical ( 16. h , 16. h ) ,
) ,
child: Row (
mainAxisSize: MainAxisSize . max ,
SizedBox ( height: 16. h ) ,
] ,
)
: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
" Lab & Radiology " . needTranslation . toText18 ( isBold: true ) ,
SizedBox ( height: 16. h ) ,
GridView (
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount ( crossAxisCount: 2 , crossAxisSpacing: 13. h , mainAxisSpacing: 13. h , childAspectRatio: 7 / 6 ) ,
physics: NeverScrollableScrollPhysics ( ) ,
shrinkWrap: true ,
children: [
Utils . buildSvgWithAssets ( icon: AppAssets . prescription_reminder_icon , width: 35. h , height: 35. h ) ,
SizedBox ( width: 8. h ) ,
Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
LocaleKeys . setReminder . tr ( context: context ) . toText13 ( isBold: true ) ,
" Notify me before the appointment " . needTranslation . toText11 ( color: AppColors . textColorLight , weight: FontWeight . w500 ) ,
] ,
MedicalFileCard (
label: LocaleKeys . labResults . tr ( context: context ) ,
textColor: AppColors . blackColor ,
backgroundColor: AppColors . whiteColor ,
svgIcon: AppAssets . lab_result_icon ,
iconSize: 40 ,
isLargeText: true ,
) ,
const Spacer ( ) ,
Switch (
activeColor: AppColors . successColor ,
activeTrackColor: AppColors . successColor . withValues ( alpha: . 15 ) ,
value: widget . patientAppointmentHistoryResponseModel . hasReminder ! ,
onChanged: ( newValue ) {
setState ( ( ) {
myAppointmentsViewModel . setAppointmentReminder ( newValue , widget . patientAppointmentHistoryResponseModel ) ;
} ) ;
} ,
MedicalFileCard (
label: LocaleKeys . radiology . tr ( context: context ) ,
textColor: AppColors . blackColor ,
backgroundColor: AppColors . whiteColor ,
svgIcon: AppAssets . radiology_icon ,
iconSize: 40 ,
isLargeText: true ,
) ,
] ,
) . paddingSymmetrical ( 16. h , 16. h ) ,
) ,
SizedBox ( height: 16. h ) ,
] ,
)
: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
" Lab & Radiology " . needTranslation . toText18 ( isBold: true ) ,
SizedBox ( height: 16. h ) ,
GridView (
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount ( crossAxisCount: 2 , crossAxisSpacing: 13. h , mainAxisSpacing: 13. h , childAspectRatio: 7 / 6 ) ,
physics: NeverScrollableScrollPhysics ( ) ,
shrinkWrap: true ,
children: [
MedicalFileCard (
label: LocaleKeys . labResults . tr ( context: context ) ,
textColor: AppColors . blackColor ,
backgroundColor: AppColors . whiteColor ,
svgIcon: AppAssets . lab_result_icon ,
iconSize: 40 ,
isLargeText: true ,
) ,
MedicalFileCard (
label: LocaleKeys . radiology . tr ( context: context ) ,
textColor: AppColors . blackColor ,
backgroundColor: AppColors . whiteColor ,
svgIcon: AppAssets . radiology_icon ,
iconSize: 40 ,
isLargeText: true ,
) ,
] ,
) ,
LocaleKeys . prescriptions . tr ( ) . toText18 ( isBold: true ) ,
SizedBox ( height: 16. h ) ,
Consumer < PrescriptionsViewModel > ( builder: ( context , prescriptionVM , child ) {
return prescriptionVM . isPrescriptionsDetailsLoading
? const MoviesShimmerWidget ( )
: Container (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
color: Colors . white ,
borderRadius: 20. h ,
) ,
child: Padding (
padding: EdgeInsets . all ( 16. h ) ,
child: Column (
children: [
ListView . separated (
itemCount: prescriptionVM . prescriptionDetailsList . length ,
shrinkWrap: true ,
padding: const EdgeInsets . only ( left: 0 , right: 8 ) ,
physics: NeverScrollableScrollPhysics ( ) ,
itemBuilder: ( context , index ) {
return AnimationConfiguration . staggeredList (
position: index ,
duration: const Duration ( milliseconds: 500 ) ,
child: SlideAnimation (
verticalOffset: 100.0 ,
child: FadeInAnimation (
child: Row (
children: [
Utils . buildSvgWithAssets (
icon: AppAssets . prescription_item_icon ,
width: 40. h ,
height: 40. h ,
) ,
SizedBox ( width: 8. h ) ,
Row (
mainAxisSize: MainAxisSize . max ,
children: [
Column (
children: [
SizedBox ( width: 150. h , child: prescriptionVM . prescriptionDetailsList [ index ] . itemDescription ! . toText12 ( isBold: true , maxLine: 1 ) ) ,
SizedBox (
width: 150. h ,
child:
" Prescribed By: ${ widget . patientAppointmentHistoryResponseModel . doctorTitle } ${ widget . patientAppointmentHistoryResponseModel . doctorNameObj } "
. needTranslation
. toText10 ( weight: FontWeight . w500 , color: AppColors . greyTextColor , letterSpacing: - 0.4 ) ,
) ,
] ,
) ,
SizedBox ( width: 68. h ) ,
Utils . buildSvgWithAssets (
icon: AppAssets . forward_arrow_icon ,
iconColor: AppColors . blackColor ,
width: 18. h ,
height: 13. h ,
fit: BoxFit . contain ,
) ,
] ,
) ,
] ,
) ,
LocaleKeys . prescriptions . tr ( ) . toText18 ( isBold: true ) ,
SizedBox ( height: 16. h ) ,
Consumer < PrescriptionsViewModel > ( builder: ( context , prescriptionVM , child ) {
return prescriptionVM . isPrescriptionsDetailsLoading
? const MoviesShimmerWidget ( )
: Container (
decoration: RoundedRectangleBorder ( ) . toSmoothCornerDecoration (
color: Colors . white ,
borderRadius: 20. h ,
) ,
child: Padding (
padding: EdgeInsets . all ( 16. h ) ,
child: Column (
children: [
ListView . separated (
itemCount: prescriptionVM . prescriptionDetailsList . length ,
shrinkWrap: true ,
padding: const EdgeInsets . only ( left: 0 , right: 8 ) ,
physics: NeverScrollableScrollPhysics ( ) ,
itemBuilder: ( context , index ) {
return AnimationConfiguration . staggeredList (
position: index ,
duration: const Duration ( milliseconds: 500 ) ,
child: SlideAnimation (
verticalOffset: 100.0 ,
child: FadeInAnimation (
child: Row (
children: [
Utils . buildSvgWithAssets (
icon: AppAssets . prescription_item_icon ,
width: 40. h ,
height: 40. h ,
) ,
SizedBox ( width: 8. h ) ,
Row (
mainAxisSize: MainAxisSize . max ,
children: [
Column (
children: [
SizedBox ( width: 150. h , child: prescriptionVM . prescriptionDetailsList [ index ] . itemDescription ! . toText12 ( isBold: true , maxLine: 1 ) ) ,
SizedBox (
width: 150. h ,
child:
" Prescribed By: ${ widget . patientAppointmentHistoryResponseModel . doctorTitle } ${ widget . patientAppointmentHistoryResponseModel . doctorNameObj } "
. needTranslation
. toText10 ( weight: FontWeight . w500 , color: AppColors . greyTextColor , letterSpacing: - 0.4 ) ,
) ,
] ,
) ,
SizedBox ( width: 68. h ) ,
Utils . buildSvgWithAssets (
icon: AppAssets . forward_arrow_icon ,
iconColor: AppColors . blackColor ,
width: 18. h ,
height: 13. h ,
fit: BoxFit . contain ,
) ,
] ,
) ,
] ,
) ,
) ,
) ,
) ;
} ,
separatorBuilder: ( BuildContext cxt , int index ) = > SizedBox ( height: 16. h ) ,
) . onPress ( ( ) {
prescriptionVM . setPrescriptionsDetailsLoading ( ) ;
Navigator . of ( context ) . push (
FadePage (
page: PrescriptionDetailPage ( prescriptionsResponseModel: getPrescriptionRequestModel ( ) ) ,
) ,
) ;
} ,
separatorBuilder: ( BuildContext cxt , int index ) = > SizedBox ( height: 16. h ) ,
) . onPress ( ( ) {
prescriptionVM . setPrescriptionsDetailsLoading ( ) ;
Navigator . of ( context ) . push (
FadePage (
page: PrescriptionDetailPage ( prescriptionsResponseModel: getPrescriptionRequestModel ( ) ) ,
) ,
) ;
} ) ,
SizedBox ( height: 16. h ) ,
const Divider ( color: AppColors . dividerColor ) ,
SizedBox ( height: 16. h ) ,
Row (
children: [
/ / Expanded (
/ / child: CustomButton (
/ / text: widget . prescriptionsResponseModel . isHomeMedicineDeliverySupported ! ? LocaleKeys . resendOrder . tr ( context: context ) : LocaleKeys . prescriptionDeliveryError . tr ( context: context ) ,
/ / onPressed: ( ) { } ,
/ / backgroundColor: AppColors . secondaryLightRedColor ,
/ / borderColor: AppColors . secondaryLightRedColor ,
/ / textColor: AppColors . primaryRedColor ,
/ / fontSize: 14 ,
/ / fontWeight: FontWeight . w500 ,
/ / borderRadius: 12. h ,
/ / height: 40. h ,
/ / icon: AppAssets . appointment_calendar_icon ,
/ / iconColor: AppColors . primaryRedColor ,
/ / iconSize: 16. h ,
/ / ) ,
/ / ) ,
/ / SizedBox ( width: 16. h ) ,
Expanded (
child: CustomButton (
text: " All Prescriptions " . needTranslation ,
onPressed: ( ) {
Navigator . of ( context )
. push (
FadePage (
page: PrescriptionsListPage ( ) ,
) ,
)
. then ( ( val ) {
prescriptionsViewModel . setPrescriptionsDetailsLoading ( ) ;
prescriptionsViewModel . getPrescriptionDetails ( getPrescriptionRequestModel ( ) ) ;
} ) ;
} ,
backgroundColor: AppColors . secondaryLightRedColor ,
borderColor: AppColors . secondaryLightRedColor ,
textColor: AppColors . primaryRedColor ,
fontSize: 14 ,
fontWeight: FontWeight . w500 ,
borderRadius: 12. h ,
height: 40. h ,
icon: AppAssets . requests ,
iconColor: AppColors . primaryRedColor ,
iconSize: 16. h ,
} ) ,
SizedBox ( height: 16. h ) ,
const Divider ( color: AppColors . dividerColor ) ,
SizedBox ( height: 16. h ) ,
Row (
children: [
/ / Expanded (
/ / child: CustomButton (
/ / text: widget . prescriptionsResponseModel . isHomeMedicineDeliverySupported ! ? LocaleKeys . resendOrder . tr ( context: context ) : LocaleKeys . prescriptionDeliveryError . tr ( context: context ) ,
/ / onPressed: ( ) { } ,
/ / backgroundColor: AppColors . secondaryLightRedColor ,
/ / borderColor: AppColors . secondaryLightRedColor ,
/ / textColor: AppColors . primaryRedColor ,
/ / fontSize: 14 ,
/ / fontWeight: FontWeight . w500 ,
/ / borderRadius: 12. h ,
/ / height: 40. h ,
/ / icon: AppAssets . appointment_calendar_icon ,
/ / iconColor: AppColors . primaryRedColor ,
/ / iconSize: 16. h ,
/ / ) ,
/ / ) ,
/ / SizedBox ( width: 16. h ) ,
Expanded (
child: CustomButton (
text: " All Prescriptions " . needTranslation ,
onPressed: ( ) {
Navigator . of ( context )
. push (
FadePage (
page: PrescriptionsListPage ( ) ,
) ,
)
. then ( ( val ) {
prescriptionsViewModel . setPrescriptionsDetailsLoading ( ) ;
prescriptionsViewModel . getPrescriptionDetails ( getPrescriptionRequestModel ( ) ) ;
} ) ;
} ,
backgroundColor: AppColors . secondaryLightRedColor ,
borderColor: AppColors . secondaryLightRedColor ,
textColor: AppColors . primaryRedColor ,
fontSize: 14 ,
fontWeight: FontWeight . w500 ,
borderRadius: 12. h ,
height: 40. h ,
icon: AppAssets . requests ,
iconColor: AppColors . primaryRedColor ,
iconSize: 16. h ,
) ,
) ,
) ,
] ,
) ,
] ,
] ,
) ,
] ,
) ,
) ,
) ,
) ;
}) ,
] ,
) ,
] ,
) .paddingSymmetrical ( 24. h , 24. h ) ,
) ;
} ) ,
] ,
) ,
] ,
). paddingSymmetrical ( 24. h , 24. h ) ,
) ,
) ,
) ,
Container (