Font changes, Updates & fixes

pull/212/head
haroon amjad 1 day ago
parent fed6cf6784
commit 56f5151c0c

@ -92,7 +92,6 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" tools:node="remove"/>
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />

@ -93,7 +93,6 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />

Binary file not shown.

@ -0,0 +1,6 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="40" height="40" rx="10" fill="#EFEFF0"/>
<path d="M18.9994 9.25C16.0999 9.25 13.7494 11.6005 13.7494 14.5C13.7494 17.3995 16.0999 19.75 18.9994 19.75C21.8989 19.75 24.2494 17.3995 24.2494 14.5C24.2494 11.6005 21.8989 9.25 18.9994 9.25Z" fill="#8F9AA3"/>
<path d="M22.4393 22.3825L22.4269 22.3899C22.3982 22.4063 22.3715 22.4164 22.3391 22.4232L22.3222 22.4264C21.5275 22.5747 20.3099 23.081 19.8772 24.4469C19.436 25.84 20.178 26.9751 20.7397 27.5414L20.9312 27.7346C21.045 27.8493 21.1019 27.9066 21.1231 27.9808C21.1442 28.055 21.1262 28.1337 21.09 28.2912L21.0601 28.4219C20.9887 28.7329 20.9096 29.2541 20.9862 29.8241C21.0509 30.3047 21.0832 30.545 20.9935 30.6475C20.9039 30.75 20.7005 30.75 20.2937 30.75L14.5901 30.75C12.7718 30.75 11.366 29.8556 10.1945 28.7396C9.51551 28.0927 9.17705 27.3646 9.26185 26.5888C9.3416 25.8592 9.78025 25.2637 10.2419 24.8118C10.9801 24.0893 12.0577 23.4813 12.7705 23.0792C12.9331 22.9875 13.0768 22.9064 13.1931 22.8372C14.4979 22.0602 15.93 21.5691 17.3945 21.3625C18.4583 21.2125 19.5401 21.2125 20.6039 21.3625C21.0835 21.4302 21.8204 21.628 22.365 21.7855C22.4184 21.801 22.4451 21.8087 22.4641 21.8172C22.6658 21.9073 22.7022 22.1856 22.5303 22.3244C22.5142 22.3375 22.4892 22.3525 22.4393 22.3825Z" fill="#8F9AA3"/>
<path d="M27.3627 22.245C27.12 21.7533 26.67 21.25 25.9982 21.25C25.3273 21.25 24.8762 21.7522 24.6315 22.2431L23.9345 23.6487L23.9282 23.6547C23.9233 23.6592 23.9176 23.6639 23.9113 23.6687C23.9049 23.6734 23.8987 23.6775 23.893 23.681L23.8859 23.6851L22.6351 23.8946C22.0941 23.9855 21.5068 24.2757 21.3091 24.8998C21.1123 25.5211 21.4213 26.0967 21.8065 26.4851L22.7841 27.4708C22.7875 27.4778 22.792 27.4888 22.7959 27.5027C22.8003 27.5181 22.8024 27.5314 22.8031 27.5401L22.524 28.7572C22.397 29.3106 22.3883 30.0742 22.9815 30.5106C23.5783 30.9496 24.3047 30.7069 24.7916 30.4156L25.9668 29.7142C26.0142 29.6859 26.0283 29.702 26.0294 29.7135L27.2061 30.4159C27.6913 30.7048 28.4194 30.9516 29.0171 30.5123C29.6116 30.0753 29.5995 29.3093 29.4735 28.7579L29.1942 27.5401C29.1949 27.5314 29.197 27.5181 29.2014 27.5027C29.2053 27.4888 29.2098 27.4778 29.2132 27.4708L30.1889 26.487L30.1899 26.486C30.5775 26.0974 30.8877 25.521 30.6893 24.8985C30.4905 24.275 29.9028 23.9855 29.3626 23.8947L28.1075 23.6844L28.0992 23.6798C28.0935 23.6763 28.0874 23.6722 28.0811 23.6676C28.0789 23.6659 28.0766 23.6642 28.0745 23.6625C28.0709 23.6596 28.0675 23.6567 28.0645 23.654L28.0587 23.6484L27.3632 22.2459L27.3627 22.245Z" fill="#8F9AA3"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@ -1669,5 +1669,9 @@
"enterAmount": "يرجى إدخال المبلغ للمتابعة.",
"selectHospitalContinue": "يرجى اختيار المستشفى للمتابعة.",
"year": "سنة",
"notifyPrescription": "أبلغني قبل وقت الاستهلاك"
"notifyPrescription": "أبلغني قبل وقت الاستهلاك",
"doctorRatingAppointment": "طبيب\nتصنيف",
"ratingSubmitted": "تم إرسال التقييم",
"rateTheDoctor": "يرجى تقييم الطبيب",
"downloadInvoice": "تحميل الفاتورة"
}

@ -1661,5 +1661,9 @@
"enterAmount": "Please enter amount to continue.",
"selectHospitalContinue": "Please select hospital to continue.",
"year": "Year",
"notifyPrescription": "Notify me before the consumption time"
"notifyPrescription": "Notify me before the consumption time",
"doctorRatingAppointment": "Doctor\nRating",
"ratingSubmitted": "Rating Submitted",
"rateTheDoctor": "Please rate the doctor",
"downloadInvoice": "Download Invoice"
}

@ -4,7 +4,7 @@ import 'package:hmg_patient_app_new/core/enums.dart';
class ApiConsts {
static const maxSmallScreen = 660;
static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod;
static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.preProd;
// static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT
@ -455,6 +455,7 @@ var IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated_
var GET_APPOINTMENT_DETAILS_BY_NO = 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo';
var NEW_RATE_APPOINTMENT_URL = "Services/Doctors.svc/REST/AppointmentsRating_InsertAppointmentRate";
var NEW_RATE_DOCTOR_URL = "Services/Doctors.svc/REST/DoctorsRating_InsertDoctorRate";
var GET_DOCTORS_RATING_CHECK = "Services/Doctors.svc/REST/GetDoctorsRatingCheck";
//var GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID';

@ -356,6 +356,7 @@ class AppAssets {
static const String darkModeIcon = '$svgBasePath/dark_mode_icon.svg';
static const String biometricLockIcon = '$svgBasePath/biometric_lock_icon.svg';
static const String imageIcon = '$svgBasePath/image_icon.svg';
static const String appointmentRatingIcon = '$svgBasePath/appointment_rating_icon.svg';
// PNGS //
static const String hmgLogo = '$pngBasePath/hmg_logo.png';

@ -355,7 +355,7 @@ class Utils {
repeat: false, reverse: false, frameRate: FrameRate(60), width: width.w, height: height.h, fit: BoxFit.fill),
SizedBox(height: 16.h),
(noDataText ?? LocaleKeys.noDataAvailable.tr())
.toText14(weight: FontWeight.w500, color: AppColors.greyTextColor, isCenter: true)
.toText14(isBold: true, color: AppColors.greyTextColor, isCenter: true)
.paddingSymmetrical(64.w, 0.h),
SizedBox(height: 16.h),
callToActionButton

@ -34,7 +34,7 @@ extension EmailValidator on String {
fontWeight: fontWeight ?? (isBold ? FontWeight.bold : FontWeight.normal),
color: color ?? AppColors.blackColor,
letterSpacing: 0,
fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins',
fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins',
),
);
@ -61,7 +61,7 @@ extension EmailValidator on String {
color: color ?? AppColors.blackColor,
letterSpacing: letterSpacing,
decoration: isUnderLine ? TextDecoration.underline : null,
fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins',
fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins',
decorationColor: color ?? AppColors.blackColor),
);
@ -81,7 +81,7 @@ extension EmailValidator on String {
maxLines: maxlines,
overflow: textOverflow,
style: TextStyle(
fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins',
fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins',
fontSize: 9.f,
fontStyle: fontStyle ?? FontStyle.normal,
fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal),
@ -102,7 +102,7 @@ extension EmailValidator on String {
color: color ?? AppColors.blackColor,
letterSpacing: letterSpacing,
decoration: isUnderLine ? TextDecoration.underline : null,
fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins',
fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins',
),
);
@ -128,7 +128,7 @@ extension EmailValidator on String {
height: height,
decorationColor: isUnderLine ? AppColors.blackColor : null,
decoration: isUnderLine ? TextDecoration.underline : null,
fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins',
fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins',
),
);
@ -211,7 +211,7 @@ extension EmailValidator on String {
height: height,
fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal),
decoration: isUnderLine ? TextDecoration.underline : null,
fontFamily: fontFamily ?? (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),
fontFamily: fontFamily ?? (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),
decorationColor: color ?? AppColors.blackColor),
);
@ -252,14 +252,14 @@ extension EmailValidator on String {
overflow: textOverflow,
fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal),
decoration: isUnderLine ? TextDecoration.underline : null,
fontFamily: fontFamily ?? (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),
fontFamily: fontFamily ?? (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),
decorationColor: decorationColor ?? AppColors.errorColor),
);
Widget toText17({bool isEnglishOnly = false, Color? color, bool isBold = false, bool isCenter = false}) => Text(
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(color: color ?? AppColors.blackColor, fontSize: 17.f, letterSpacing: -1, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),
style: TextStyle(color: color ?? AppColors.blackColor, fontSize: 17.f, letterSpacing: -1, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),
);
Widget toText18({Color? color, FontWeight? weight, bool isBold = false, bool isCenter = false, int? maxlines, TextOverflow? textOverflow, bool isEnglishOnly = false,}) => Text(
@ -267,7 +267,7 @@ extension EmailValidator on String {
textAlign: isCenter ? TextAlign.center : null,
this,
overflow: textOverflow,
style: TextStyle(fontSize: 18.f, fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal), color: color ?? AppColors.blackColor, letterSpacing: -0.4, fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),),
style: TextStyle(fontSize: 18.f, fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal), color: color ?? AppColors.blackColor, letterSpacing: -0.4, fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),),
);
Widget toText19({Color? color, bool isBold = false}) => Text(
@ -301,7 +301,7 @@ extension EmailValidator on String {
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(
fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),
fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),
height: 23 / 24, color: color ?? AppColors.blackColor, fontSize: 24.f, letterSpacing: letterSpacing ?? -1, fontWeight: isBold ? FontWeight.bold : fontWeight ?? FontWeight.normal),
);
@ -309,26 +309,26 @@ extension EmailValidator on String {
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(
fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),
fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),
height: height ?? 23 / 26, color: color ?? AppColors.blackColor, fontSize: 26.f, letterSpacing: letterSpacing ?? -1, fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal)),
);
Widget toText28({bool isEnglishOnly = false, Color? color, bool isBold = false, double? height, bool isCenter = false, double? letterSpacing}) => Text(
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(height: height ?? 23 / 28, color: color ?? AppColors.blackColor, fontSize: 28.f, letterSpacing: letterSpacing ?? -1, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),
style: TextStyle(height: height ?? 23 / 28, color: color ?? AppColors.blackColor, fontSize: 28.f, letterSpacing: letterSpacing ?? -1, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),
);
Widget toText32({bool isEnglishOnly = false, FontWeight? weight, Color? color, bool isBold = false, bool isCenter = false}) => Text(
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(
height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 32.f, letterSpacing: -1, fontFamily: isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins', fontWeight: isBold ? FontWeight.bold : weight ?? FontWeight.normal),
height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 32.f, letterSpacing: -1, fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins', fontWeight: isBold ? FontWeight.bold : weight ?? FontWeight.normal),
);
Widget toText44({Color? color, bool isBold = false, bool isEnglishOnly = false,}) => Text(
this,
style: TextStyle(height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 44.f, letterSpacing: -1, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins'),),
style: TextStyle(height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 44.f, letterSpacing: -1, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, fontFamily: (isEnglishOnly ? "Poppins" : getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins'),),
);
Widget toSectionHeading({String upperHeading = "", String lowerHeading = ""}) {
@ -434,7 +434,7 @@ extension DynamicTextStyleExtension on BuildContext {
String? fontFamily,
bool isLanguageSwitcher = false}) {
AppState appState = getIt.get<AppState>();
final family = appState.getLanguageCode() == "ar" ? 'GESSTwo' : 'Poppins';
final family = appState.getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins';
return TextStyle(
fontFamily: fontFamily ?? family,
fontSize: fontSize,
@ -465,7 +465,7 @@ class FontUtils {
/// Get the appropriate font family for a specific language
static String getFontFamilyForLanguage(bool isArabic) {
return isArabic ? 'GESSTwo' : 'Poppins';
return isArabic ? 'CairoArabic' : 'Poppins';
}
}

@ -26,7 +26,7 @@ class HospitalBottomSheetBodySelection extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if(!isHideTitle) LocaleKeys.selectHospital.tr(context: context).toText16(weight: FontWeight.w500, color: AppColors.greyTextColor),
if(!isHideTitle) LocaleKeys.selectHospital.tr(context: context).toText16(isBold: true, color: AppColors.greyTextColor),
SizedBox(height: 16.h),
SizedBox(
height: MediaQuery.sizeOf(context).height * .4,
@ -75,7 +75,8 @@ class HospitalBottomSheetBodySelection extends StatelessWidget {
children: [
Utils.buildSvgWithAssets(icon: AppAssets.hmg).paddingOnly(right: 10),
Expanded(
child: Text(hospital.projectName ?? "", style: TextStyle(fontWeight: FontWeight.w600, fontSize: 16.f, color: AppColors.blackColor)),
child: (hospital.projectName ?? "").toString().toText16(isBold: true, color: AppColors.blackColor),
// Text(hospital.projectName ?? "", style: TextStyle(isBold: true, fontSize: 16.f, color: AppColors.blackColor)),
)
],
);

@ -0,0 +1,30 @@
class AppointmentRatedResponseModel {
int? appointmentNo;
int? clinicID;
int? doctorID;
bool? isAllowedToRate;
bool? isAppointmentRated;
int? projectID;
AppointmentRatedResponseModel({this.appointmentNo, this.clinicID, this.doctorID, this.isAllowedToRate, this.isAppointmentRated, this.projectID});
AppointmentRatedResponseModel.fromJson(Map<String, dynamic> json) {
appointmentNo = json['AppointmentNo'];
clinicID = json['ClinicID'];
doctorID = json['DoctorID'];
isAllowedToRate = json['IsAllowedToRate'];
isAppointmentRated = json['IsAppointmentRated'];
projectID = json['ProjectID'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['AppointmentNo'] = this.appointmentNo;
data['ClinicID'] = this.clinicID;
data['DoctorID'] = this.doctorID;
data['IsAllowedToRate'] = this.isAllowedToRate;
data['IsAppointmentRated'] = this.isAppointmentRated;
data['ProjectID'] = this.projectID;
return data;
}
}

@ -9,6 +9,7 @@ import 'package:hmg_patient_app_new/core/exceptions/api_failure.dart';
import 'package:hmg_patient_app_new/core/utils/date_util.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/features/book_appointments/models/resp_models/get_favorite_doctors_list.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/appointment_rated_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/rate_appointment_resp_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/ask_doctor_request_type_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/get_tamara_installments_details_response_model.dart';
@ -81,6 +82,13 @@ abstract class MyAppointmentsRepo {
Future<Either<Failure, GenericApiModel<dynamic>>> convertPatientToCash({required int projectID});
Future<Either<Failure, GenericApiModel<dynamic>>> sendPatientUpdateRequest();
Future<Either<Failure, GenericApiModel<dynamic>>> getDoctorsRatingCheck({
required int doctorID,
required int projectID,
required int clinicID,
required int appointmentNo,
});
}
class MyAppointmentsRepoImp implements MyAppointmentsRepo {
@ -1077,4 +1085,50 @@ class MyAppointmentsRepoImp implements MyAppointmentsRepo {
return Left(UnknownFailure(e.toString()));
}
}
@override
Future<Either<Failure, GenericApiModel<AppointmentRatedResponseModel>>> getDoctorsRatingCheck({
required int doctorID,
required int projectID,
required int clinicID,
required int appointmentNo,
}) async {
Map<String, dynamic> mapDevice = {
"DoctorID": doctorID,
"ProjectID": projectID,
"ClinicID": clinicID,
"AppointmentNo": appointmentNo,
};
try {
GenericApiModel<AppointmentRatedResponseModel>? apiResponse;
Failure? failure;
await apiClient.post(
GET_DOCTORS_RATING_CHECK,
body: mapDevice,
onFailure: (error, statusCode, {messageStatus, failureType}) {
failure = failureType;
},
onSuccess: (response, statusCode, {messageStatus, errorMessage}) {
try {
AppointmentRatedResponseModel appointmentRatedResponseModel = AppointmentRatedResponseModel.fromJson(response['DoctorsRatingResponseModel'][0]);
apiResponse = GenericApiModel<AppointmentRatedResponseModel>(
messageStatus: messageStatus,
statusCode: statusCode,
errorMessage: errorMessage,
data: appointmentRatedResponseModel,
);
} catch (e) {
failure = DataParsingFailure(e.toString());
}
},
);
if (failure != null) return Left(failure!);
if (apiResponse == null) return Left(ServerFailure("Unknown error"));
return Right(apiResponse!);
} catch (e) {
return Left(UnknownFailure(e.toString()));
}
}
}

@ -7,6 +7,7 @@ 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/features/book_appointments/models/resp_models/get_favorite_doctors_list.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/appointemnet_filters.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/appointment_rated_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/ask_doctor_request_type_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/get_tamara_installments_details_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/patient_appointment_history_response_model.dart';
@ -87,6 +88,11 @@ class MyAppointmentsViewModel extends ChangeNotifier {
bool isShowNotEligibleDialog = false;
String notEligibleErrorMsg = "";
bool isAppointmentAlreadyRated = false;
AppointmentRatedResponseModel? appointmentRatedResponseModel;
bool isAppointmentRatedResponseLoading = false;
MyAppointmentsViewModel({required this.myAppointmentsRepo, required this.errorHandlerService, required this.appState});
void onTabChange(int index) {
@ -670,9 +676,9 @@ class MyAppointmentsViewModel extends ChangeNotifier {
Future<void> getPatientFavouriteDoctors({bool forceRefresh = false, Function(dynamic)? onSuccess, Function(String)? onError}) async {
// If data is already fetched and not forcing refresh, skip API call
if (isFavouriteDoctorsDataFetched && !forceRefresh) {
return;
}
// if (isFavouriteDoctorsDataFetched && !forceRefresh) {
// return;
// }
isPatientFavouriteDoctorsLoading = true;
patientFavouriteDoctorsList.clear();
@ -995,4 +1001,79 @@ class MyAppointmentsViewModel extends ChangeNotifier {
},
);
}
Future<void> getDoctorsRatingCheck({
required int doctorID,
required int projectID,
required int clinicID,
required int appointmentNo,
Function(dynamic)? onSuccess,
Function(String)? onError,
}) async {
isAppointmentRatedResponseLoading = true;
notifyListeners();
final result = await myAppointmentsRepo.getDoctorsRatingCheck(
doctorID: doctorID,
projectID: projectID,
clinicID: clinicID,
appointmentNo: appointmentNo,
);
result.fold(
(failure) async {
// await errorHandlerService.handleError(failure: failure);
if (onError != null) onError(failure.message);
isAppointmentRatedResponseLoading = false;
notifyListeners();
},
(apiResponse) {
if (apiResponse.messageStatus == 2) {
if (onError != null) onError(apiResponse.errorMessage ?? "Unknown error");
isAppointmentRatedResponseLoading = false;
notifyListeners();
} else if (apiResponse.messageStatus == 1) {
appointmentRatedResponseModel = apiResponse.data!;
isAppointmentRatedResponseLoading = false;
notifyListeners();
if (onSuccess != null) {
onSuccess(apiResponse.data);
}
}
},
);
}
Future<void> submitDoctorRating(
{required PatientAppointmentHistoryResponseModel patientAppointmentHistoryResponseModel,
required int docRate,
required String docNote,
Function(dynamic)? onSuccess,
Function(String)? onError}) async {
final result = await myAppointmentsRepo.sendDoctorRate(
docRate,
patientAppointmentHistoryResponseModel.appointmentNo!,
patientAppointmentHistoryResponseModel.projectID!,
patientAppointmentHistoryResponseModel.doctorID!,
patientAppointmentHistoryResponseModel.clinicID!,
docNote,
patientAppointmentHistoryResponseModel.appointmentDate!,
patientAppointmentHistoryResponseModel.doctorNameObj!,
patientAppointmentHistoryResponseModel.projectName!,
patientAppointmentHistoryResponseModel.clinicName!);
result.fold(
(failure) async => await errorHandlerService.handleError(failure: failure),
(apiResponse) {
if (apiResponse.messageStatus == 2) {
onError?.call(apiResponse.errorMessage ?? 'Unknown error');
} else if (apiResponse.messageStatus == 1) {
notifyListeners();
if (onSuccess != null) {
// onSuccess(apiResponse.data);
}
}
},
);
}
}

@ -1662,5 +1662,9 @@ abstract class LocaleKeys {
static const selectHospitalContinue = 'selectHospitalContinue';
static const year = 'year';
static const notifyPrescription = 'notifyPrescription';
static const doctorRatingAppointment = 'doctorRatingAppointment';
static const ratingSubmitted = 'ratingSubmitted';
static const rateTheDoctor = 'rateTheDoctor';
static const downloadInvoice = 'downloadInvoice';
}

@ -98,7 +98,7 @@ Future<void> callInitializations() async {
await EasyLocalization.ensureInitialized();
// Download the latest JSONs from your server
await TranslationService.downloadTranslations();
// await TranslationService.downloadTranslations();
// await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);

@ -137,7 +137,7 @@ class _ActiveMedicationPageState extends State<ActiveMedicationPage> {
style: TextStyle(
color: AppColors.textColor,
fontSize: 27.f,
fontWeight: FontWeight.w600)),
fontWeight: FontWeight.w600,)),
SizedBox(height: 16.h),
SizedBox(
height: 65.h,
@ -163,7 +163,7 @@ class _ActiveMedicationPageState extends State<ActiveMedicationPage> {
style: TextStyle(
color: AppColors.textColor,
fontSize: 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
),
),
WidgetSpan(
@ -174,7 +174,7 @@ class _ActiveMedicationPageState extends State<ActiveMedicationPage> {
style: TextStyle(
fontSize: 12,
color: AppColors.textColor,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
),
),
),
@ -184,7 +184,7 @@ class _ActiveMedicationPageState extends State<ActiveMedicationPage> {
style: TextStyle(
color: AppColors.textColor,
fontSize: 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
),
),
],
@ -194,7 +194,7 @@ class _ActiveMedicationPageState extends State<ActiveMedicationPage> {
style: TextStyle(
color: AppColors.primaryRedBorderColor,
fontSize: 12.f,
fontWeight: FontWeight.w500)),
fontWeight: FontWeight.w600,)),
SizedBox(height: 16.h),
Expanded(
child: SingleChildScrollView(
@ -630,7 +630,7 @@ class _ActiveMedicationPageState extends State<ActiveMedicationPage> {
style: TextStyle(
fontSize: 12.f,
color: AppColors.greyTextColor,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
),
),
],
@ -722,7 +722,7 @@ class _ActiveMedicationPageState extends State<ActiveMedicationPage> {
? AppColors.primaryRedBorderColor
: AppColors.greyTextColor,
fontSize: 11.f,
fontWeight: FontWeight.w500),
fontWeight: FontWeight.w600,),
),
SizedBox(height: 5.h),
Text("${date.day}",

@ -31,6 +31,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/appointments/widgets/appointment_rating_widget.dart';
import 'package:hmg_patient_app_new/presentation/appointments/widgets/ask_doctor_request_type_select.dart';
import 'package:hmg_patient_app_new/presentation/ask_doctor/ask_doctor_page.dart';
import 'package:hmg_patient_app_new/presentation/ask_doctor/doctor_response_page.dart';
@ -74,11 +75,12 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
@override
void initState() {
scheduleMicrotask(() async {
if (!AppointmentType.isArrived(widget.patientAppointmentHistoryResponseModel)) {
// CalenderUtilsNew calendarUtils = await CalenderUtilsNew.instance;
// var doesExist = await calendarUtils.checkIfEventExist("${widget.patientAppointmentHistoryResponseModel.appointmentNo}");
// myAppointmentsViewModel.setAppointmentReminder(doesExist, widget.patientAppointmentHistoryResponseModel);
// setState(() {});
if (AppointmentType.isArrived(widget.patientAppointmentHistoryResponseModel)) {
myAppointmentsViewModel.getDoctorsRatingCheck(
doctorID: widget.patientAppointmentHistoryResponseModel.doctorID,
clinicID: widget.patientAppointmentHistoryResponseModel.clinicID,
projectID: widget.patientAppointmentHistoryResponseModel.projectID,
appointmentNo: widget.patientAppointmentHistoryResponseModel.appointmentNo);
}
});
@ -231,53 +233,53 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
LocaleKeys.appointmentStatus.tr(context: context).toText16(isBold: true),
SizedBox(height: 4.h),
(!AppointmentType.isConfirmed(widget.patientAppointmentHistoryResponseModel)
? LocaleKeys.notConfirmed.tr(context: context).toText12(color: AppColors.primaryRedColor, fontWeight: FontWeight.w500)
: LocaleKeys.confirmed.tr(context: context).toText12(color: AppColors.successColor, fontWeight: FontWeight.w500)),
? LocaleKeys.notConfirmed.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true)
: LocaleKeys.confirmed.tr(context: context).toText12(color: AppColors.successColor, isBold: true)),
SizedBox(height: 16.h),
],
),
((!AppointmentType.isConfirmed(widget.patientAppointmentHistoryResponseModel) && widget.patientAppointmentHistoryResponseModel.nextAction != 10)
? CustomButton(
text: LocaleKeys.confirm.tr(),
onPressed: () async {
LoaderBottomSheet.showLoader(loadingText: LocaleKeys.confirmingAppointmentPleaseWait.tr(context: context));
await myAppointmentsViewModel.confirmAppointment(
patientAppointmentHistoryResponseModel: widget.patientAppointmentHistoryResponseModel,
onSuccess: (apiResponse) {
LoaderBottomSheet.hideLoader();
myAppointmentsViewModel.setIsAppointmentDataToBeLoaded(true);
myAppointmentsViewModel.initAppointmentsViewModel();
// myAppointmentsViewModel.getPatientAppointments(true, false);
showCommonBottomSheetWithoutHeight(
title: "",
context,
child: Utils.getSuccessWidget(loadingText: LocaleKeys.appointmentConfirmedSuccessfully.tr(context: context)),
callBackFunc: () {
Navigator.pushAndRemoveUntil(
context,
CustomPageRoute(
page: LandingNavigation(),
),
(r) => false);
},
isFullScreen: false,
isCloseButtonVisible: false,
isAutoDismiss: true
);
});
},
backgroundColor: AppColors.successColor,
borderColor: AppColors.successColor,
textColor: Colors.white,
fontSize: 14.f,
fontWeight: FontWeight.w500,
borderRadius: 12.r,
height: 40.h,
icon: AppAssets.confirm_appointment_icon,
iconColor: Colors.white,
iconSize: 16.h,
)
: SizedBox.shrink())
// ((!AppointmentType.isConfirmed(widget.patientAppointmentHistoryResponseModel) && widget.patientAppointmentHistoryResponseModel.nextAction != 10)
// ? CustomButton(
// text: LocaleKeys.confirm.tr(),
// onPressed: () async {
// LoaderBottomSheet.showLoader(loadingText: LocaleKeys.confirmingAppointmentPleaseWait.tr(context: context));
// await myAppointmentsViewModel.confirmAppointment(
// patientAppointmentHistoryResponseModel: widget.patientAppointmentHistoryResponseModel,
// onSuccess: (apiResponse) {
// LoaderBottomSheet.hideLoader();
// myAppointmentsViewModel.setIsAppointmentDataToBeLoaded(true);
// myAppointmentsViewModel.initAppointmentsViewModel();
// // myAppointmentsViewModel.getPatientAppointments(true, false);
// showCommonBottomSheetWithoutHeight(
// title: "",
// context,
// child: Utils.getSuccessWidget(loadingText: LocaleKeys.appointmentConfirmedSuccessfully.tr(context: context)),
// callBackFunc: () {
// Navigator.pushAndRemoveUntil(
// context,
// CustomPageRoute(
// page: LandingNavigation(),
// ),
// (r) => false);
// },
// isFullScreen: false,
// isCloseButtonVisible: false,
// isAutoDismiss: true
// );
// });
// },
// backgroundColor: AppColors.successColor,
// borderColor: AppColors.successColor,
// textColor: Colors.white,
// fontSize: 14.f,
// isBold: true,
// borderRadius: 12.r,
// height: 40.h,
// icon: AppAssets.confirm_appointment_icon,
// iconColor: Colors.white,
// iconSize: 16.h,
// )
// : SizedBox.shrink())
],
),
//TODO Add countdown timer in case of LiveCare Appointment
@ -290,7 +292,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.doctorWillCallYou.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.doctorWillCallYou.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -336,7 +338,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
borderColor: AppointmentType.getNextActionButtonColor(widget.patientAppointmentHistoryResponseModel.nextAction).withValues(alpha: 0.01),
textColor: Colors.white,
fontSize: 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 40.h,
@ -386,7 +388,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.setReminder.tr(context: context).toText13(isBold: true),
LocaleKeys.notifyMeBeforeAppointment.tr(context: context).toText11(color: AppColors.textColorLight, weight: FontWeight.w500),
LocaleKeys.notifyMeBeforeAppointment.tr(context: context).toText11(color: AppColors.textColorLight, isBold: true),
],
),
const Spacer(),
@ -451,7 +453,8 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
],
)
// : SizedBox.shrink()
: GridView(
: Consumer<MyAppointmentsViewModel>(builder: (context, myAppointmentsVM, child) {
return GridView(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
crossAxisSpacing: 16.h,
@ -598,8 +601,45 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
),
);
}),
],
myAppointmentsVM.isAppointmentRatedResponseLoading
? MedicalFileCard(
label: "Medical File",
textColor: AppColors.blackColor,
backgroundColor: AppColors.whiteColor,
svgIcon: AppAssets.appointmentRatingIcon,
isLargeText: true,
iconSize: 36.w,
isLocked: false,
).toShimmer2()
: MedicalFileCard(
label: !((myAppointmentsVM.appointmentRatedResponseModel!).isAppointmentRated ?? true)
? LocaleKeys.ratingSubmitted.tr(context: context)
: LocaleKeys.doctorRatingAppointment.tr(context: context),
textColor: AppColors.blackColor,
backgroundColor: AppColors.whiteColor,
svgIcon: AppAssets.appointmentRatingIcon,
isLargeText: true,
iconSize: 36.w,
isLocked: !(myAppointmentsVM.appointmentRatedResponseModel!.isAppointmentRated ?? true),
).onPress(() {
showCommonBottomSheetWithoutHeight(
context,
title: LocaleKeys.doctorRating.tr(context: context),
isCloseButtonVisible: true,
child: StatefulBuilder(
builder: (context, setState) {
return AppointmentRatingWidget(
patientAppointmentHistoryResponseModel: widget.patientAppointmentHistoryResponseModel,
);
},
),
isFullScreen: false,
);
}),
],
);
}),
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
@ -686,7 +726,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
// // "Prescribed By: ${widget.patientAppointmentHistoryResponseModel.doctorTitle} ${widget.patientAppointmentHistoryResponseModel.doctorNameObj}"
// // .needTranslation
// // .toText10(
// // weight: FontWeight.w500,
// // weight: FontWeight.w600,
// // color: AppColors.greyTextColor,
// // letterSpacing: -0.4),
// // ],
@ -733,7 +773,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
// // // borderColor: AppColors.secondaryLightRedColor,
// // // textColor: AppColors.primaryRedColor,
// // // fontSize: 14,
// // // fontWeight: FontWeight.w500,
// // // isBold: true,
// // // borderRadius: 12.h,
// // // height: 40.h,
// // // icon: AppAssets.appointment_calendar_icon,
@ -761,7 +801,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
// // borderColor: AppColors.secondaryLightRedColor,
// // textColor: AppColors.primaryRedColor,
// // fontSize: 14.f,
// // fontWeight: FontWeight.w500,
// // isBold: true,
// // borderRadius: 12.r,
// // height: 40.h,
// // icon: AppAssets.requests,
@ -790,7 +830,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
// // borderColor: AppColors.secondaryLightRedColor,
// // textColor: AppColors.primaryRedColor,
// // fontSize: 14.f,
// // fontWeight: FontWeight.w500,
// // isBold: true,
// // borderRadius: 12.r,
// // height: 40.h,
// // icon: AppAssets.requests,
@ -843,8 +883,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
children: [
Expanded(
child: LocaleKeys.upcomingPaymentNow
.tr(context: context)
.toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor)),
.tr(context: context).toText12(isBold: true, color: AppColors.greyTextColor)),
"VAT 15%(${widget.patientAppointmentHistoryResponseModel.patientTaxAmount})".toText14(isBold: true, color: AppColors.greyTextColor, letterSpacing: -0.64),
],
),
@ -885,7 +924,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
borderColor: AppColors.primaryRedColor,
textColor: Colors.white,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 50.h,
@ -903,7 +942,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
AppointmentType.getNextActionButtonColor(widget.patientAppointmentHistoryResponseModel.nextAction).withOpacity(0.01),
textColor: widget.patientAppointmentHistoryResponseModel.nextAction == 15 ? AppColors.textColor : Colors.white,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 56.h,
@ -933,7 +972,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
SizedBox(height: 4.h),
LocaleKeys.confirmYourLocationDesc.tr(context: context).toText12(
color: AppColors.greyTextColor,
fontWeight: FontWeight.w500,
isBold: true,
),
SizedBox(height: 24.h),
CustomButton(
@ -947,7 +986,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
borderColor: AppColors.primaryRedColor,
textColor: Colors.white,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
// padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 56.h,
@ -973,7 +1012,7 @@ class _AppointmentDetailsPageState extends State<AppointmentDetailsPage> {
borderColor: AppColors.chipSecondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
// padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 56.h,

@ -249,7 +249,7 @@ class _AppointmentPaymentPageState extends State<AppointmentPaymentPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
LocaleKeys.insuranceExpiredOrInactive.tr(context: context)
.toText14(color: AppColors.primaryRedColor, weight: FontWeight.w500)
.toText14(color: AppColors.primaryRedColor, isBold: true)
.paddingSymmetrical(24.h, 0.h),
CustomButton(
text: LocaleKeys.updateInsurance.tr(context: context),
@ -265,7 +265,7 @@ class _AppointmentPaymentPageState extends State<AppointmentPaymentPage> {
borderColor: AppColors.secondaryLightRedBorderColor,
textColor: AppColors.whiteColor,
fontSize: 10.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 8,
padding: EdgeInsets.fromLTRB(15, 0, 15, 0),
height: 30.h,

@ -72,7 +72,7 @@ class AppointmentQueuePage extends StatelessWidget {
.toShimmer2(isShow: myAppointmentsVM.isAppointmentQueueDetailsLoading),
SizedBox(height: 8.h),
LocaleKeys.thankYouForPatience.tr(context: context)
.toText12(fontWeight: FontWeight.w500, color: AppColors.textColorLight)
.toText12(isBold: true, color: AppColors.textColorLight)
.toShimmer2(isShow: myAppointmentsVM.isAppointmentQueueDetailsLoading),
SizedBox(height: 8.h),
myAppointmentsVM.currentPatientQueueDetails.queueNo!
@ -130,7 +130,7 @@ class AppointmentQueuePage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
"Room: ${myAppointmentsVM.patientQueueDetailsList[index].roomNo}"
.toText12(fontWeight: FontWeight.w500),
.toText12(isBold: true),
SizedBox(width: 8.w),
AppCustomChipWidget(
deleteIcon: myAppointmentsVM.patientQueueDetailsList[index].callType == 1
@ -184,19 +184,19 @@ class AppointmentQueuePage extends StatelessWidget {
),
SizedBox(height: 8.h),
"${LocaleKeys.improveOverallHealth.tr(context: context)}"
.toText12(fontWeight: FontWeight.w500, color: AppColors.textColorLight),
.toText12(isBold: true, color: AppColors.textColorLight),
SizedBox(height: 4.h),
"${LocaleKeys.routineScreenings.tr(context: context)}"
.toText12(fontWeight: FontWeight.w500, color: AppColors.textColorLight),
.toText12(isBold: true, color: AppColors.textColorLight),
SizedBox(height: 4.h),
"${LocaleKeys.whatIsThisMedicationFor.tr(context: context)}"
.toText12(fontWeight: FontWeight.w500, color: AppColors.textColorLight),
.toText12(isBold: true, color: AppColors.textColorLight),
SizedBox(height: 4.h),
"${LocaleKeys.sideEffectsToKnow.tr(context: context)}"
.toText12(fontWeight: FontWeight.w500, color: AppColors.textColorLight),
.toText12(isBold: true, color: AppColors.textColorLight),
SizedBox(height: 4.h),
"${LocaleKeys.whenFollowUp.tr(context: context)}"
.toText12(fontWeight: FontWeight.w500, color: AppColors.textColorLight),
.toText12(isBold: true, color: AppColors.textColorLight),
SizedBox(height: 16.h),
],
@ -229,7 +229,7 @@ class AppointmentQueuePage extends StatelessWidget {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 50.h,

@ -113,7 +113,7 @@ class _MyAppointmentsPageState extends State<MyAppointmentsPage> {
borderColor: myAppointmentsVM.isAppointmentsSortByClinic ? AppColors.primaryRedColor : AppColors.textColor.withValues(alpha: 0.2),
textColor: myAppointmentsVM.isAppointmentsSortByClinic ? AppColors.primaryRedColor : AppColors.blackColor,
fontSize: 12,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,
@ -128,7 +128,7 @@ class _MyAppointmentsPageState extends State<MyAppointmentsPage> {
borderColor: myAppointmentsVM.isAppointmentsSortByClinic ? AppColors.textColor.withValues(alpha: 0.2) : AppColors.primaryRedColor,
textColor: myAppointmentsVM.isAppointmentsSortByClinic ? AppColors.blackColor : AppColors.primaryRedColor,
fontSize: 12,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,
@ -266,7 +266,7 @@ class _MyAppointmentsPageState extends State<MyAppointmentsPage> {
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
padding: EdgeInsets.fromLTRB(10.w, 0, 10.w, 0),
height: 40.h,

@ -89,7 +89,7 @@ class _MyDoctorsPageState extends State<MyDoctorsPage> {
borderColor: isSortByClinic ? AppColors.primaryRedColor : AppColors.textColor.withValues(alpha: 0.2),
textColor: isSortByClinic ? AppColors.primaryRedColor : AppColors.blackColor,
fontSize: 12,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,
@ -107,7 +107,7 @@ class _MyDoctorsPageState extends State<MyDoctorsPage> {
borderColor: isSortByClinic ? AppColors.textColor.withValues(alpha: 0.2) : AppColors.primaryRedColor,
textColor: isSortByClinic ? AppColors.blackColor : AppColors.primaryRedColor,
fontSize: 12,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,
@ -234,7 +234,7 @@ class _MyDoctorsPageState extends State<MyDoctorsPage> {
SizedBox(height: 8.h),
Text(
displayName,
style: TextStyle(fontSize: 16.h, fontWeight: FontWeight.w600),
style: TextStyle(fontSize: 16.h, fontWeight: FontWeight.w600,),
overflow: TextOverflow.ellipsis,
),
],
@ -276,7 +276,7 @@ class _MyDoctorsPageState extends State<MyDoctorsPage> {
).circle(100),
SizedBox(width: 8.h),
Expanded(
child: (doctor?.doctorName ?? "").toString().toText14(weight: FontWeight.w500),
child: (doctor?.doctorName ?? "").toString().toText14(isBold: true),
),
],
),
@ -336,7 +336,7 @@ class _MyDoctorsPageState extends State<MyDoctorsPage> {
borderColor: doctor?.isActiveDoctorProfile == false ? AppColors.inputLabelTextColor.withValues(alpha: 0.01) : AppColors.secondaryLightRedColor,
textColor: doctor?.isActiveDoctorProfile == false ? AppColors.inputLabelTextColor.withValues(alpha: 1.0) : AppColors.primaryRedColor,
fontSize: 14,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12,
padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,

@ -270,7 +270,7 @@ class AppointmentCard extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: (isFoldable || isTablet) ? 12.f : 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
// height: isTablet || isFoldable ? 46.h : 40.h,
@ -298,7 +298,7 @@ class AppointmentCard extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: (isFoldable || isTablet) ? 12.f : 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
// height: isTablet || isFoldable ? 46.h : 40.h,
@ -323,7 +323,7 @@ class AppointmentCard extends StatelessWidget {
borderColor: AppointmentType.getNextActionButtonColor(patientAppointmentHistoryResponseModel.nextAction).withValues(alpha: 0.01),
textColor: AppointmentType.getNextActionTextColor(patientAppointmentHistoryResponseModel.nextAction),
fontSize: (isFoldable || isTablet) ? 12.f : 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 40.h,
@ -403,7 +403,7 @@ class AppointmentCard extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: (isFoldable || isTablet) ? 12.f : 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
// height: isTablet || isFoldable ? 46.h : 40.h,
@ -422,7 +422,7 @@ class AppointmentCard extends StatelessWidget {
textColor: AppColors.blackColor,
borderWidth: 1.h,
fontSize: (isFoldable || isTablet) ? 12.f : 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 40.h,

@ -120,7 +120,7 @@ class AppointmentCheckinBottomSheet extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
title.toText16(isBold: true, color: AppColors.textColor),
subTitle.toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor),
subTitle.toText12(isBold: true, color: AppColors.greyTextColor),
],
),
),

@ -202,7 +202,7 @@ class AppointmentDoctorCard extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
padding: EdgeInsets.fromLTRB(10.w, 0, 10.w, 0),
height: 40.h,
@ -221,7 +221,7 @@ class AppointmentDoctorCard extends StatelessWidget {
// borderColor: AppColors.greyColor,
// textColor: AppColors.blackColor,
// fontSize: 12.f,
// fontWeight: FontWeight.w500,
// isBold: true,
// borderRadius: 12.r,
// padding: EdgeInsets.fromLTRB(10.w, 0, 10.w, 0),
// height: 40.h,
@ -242,7 +242,7 @@ class AppointmentDoctorCard extends StatelessWidget {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
height: 40.h,
icon: AppAssets.cancel,
@ -261,7 +261,7 @@ class AppointmentDoctorCard extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
height: 40.h,
icon: AppAssets.appointment_calendar_icon,
@ -280,7 +280,7 @@ class AppointmentDoctorCard extends StatelessWidget {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
height: 40.h,
icon: AppAssets.cancel,

@ -0,0 +1,181 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_export.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_view_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/patient_appointment_history_response_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/my_appointments_view_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/presentation/appointments/widgets/doctor_row_appointment_rating.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart';
import 'package:hmg_patient_app_new/widgets/loader/bottomsheet_loader.dart';
import 'package:provider/provider.dart';
class AppointmentRatingWidget extends StatefulWidget {
const AppointmentRatingWidget({super.key, required this.patientAppointmentHistoryResponseModel});
final PatientAppointmentHistoryResponseModel patientAppointmentHistoryResponseModel;
@override
State<AppointmentRatingWidget> createState() => _AppointmentRatingWidgetState();
}
class _AppointmentRatingWidgetState extends State<AppointmentRatingWidget> {
late MyAppointmentsViewModel myAppointmentsViewModel;
late BookAppointmentsViewModel bookAppointmentsViewModel;
int rating = 0;
String notes = "";
@override
Widget build(BuildContext context) {
myAppointmentsViewModel = Provider.of<MyAppointmentsViewModel>(context, listen: false);
bookAppointmentsViewModel = Provider.of<BookAppointmentsViewModel>(context, listen: false);
return SizedBox(
height: MediaQuery.of(context).size.height * 0.6,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Scrollable main content
Expanded(
child: Padding(
padding: const EdgeInsets.only(top: 0.0, left: 0, right: 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
// Doctor row
Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor,
borderRadius: 24.r,
hasShadow: false,
),
child: BuildDoctorRowAppointmentRating(
patientAppointmentHistoryResponseModel: widget.patientAppointmentHistoryResponseModel,
)),
SizedBox(height: 16),
// Rating box
Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor,
borderRadius: 24.r,
hasShadow: false,
),
width: double.infinity,
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.rateTheDoctor.tr(context: context).toText16(isBold: true),
SizedBox(height: 12),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
...List.generate(
5,
(index) => AnimatedSwitcher(
duration: Duration(milliseconds: 1000),
switchInCurve: Curves.elasticOut,
switchOutCurve: Curves.elasticIn,
transitionBuilder: (Widget child, Animation<double> animation) {
return ScaleTransition(child: child, scale: animation);
},
child: Container(
key: ValueKey<int>(rating),
child: IconButton(
iconSize: 45.0,
onPressed: () {
setState(() {
rating = index + 1;
});
},
color: rating >= (index + 1) ? Color.fromRGBO(255, 186, 0, 1.0) : Colors.grey[400],
icon: Icon(rating >= (index + 1) ? Icons.star : Icons.star)),
),
),
)
],
),
],
),
),
),
SizedBox(height: 12),
// Note text field
Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor,
borderRadius: 24.r,
hasShadow: false,
),
child: Padding(
padding: EdgeInsets.all(16.0),
child: TextField(
maxLines: 4,
decoration: InputDecoration.collapsed(
hintText: LocaleKeys.notes.tr(context: context),
hintStyle: TextStyle(fontSize: 16.f, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16)),
onChanged: (value) {
setState(() {
notes = value;
});
},
))),
],
),
),
),
// Bottom action buttons pinned to bottom
SafeArea(
top: false,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 12.0),
child: Row(
children: [
Expanded(
child: CustomButton(
text: LocaleKeys.later.tr(context: context),
backgroundColor: Color(0xffFEE9EA),
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
onPressed: () {
Navigator.pop(context);
},
),
),
SizedBox(width: 10),
Expanded(
child: CustomButton(
text: LocaleKeys.submit.tr(context: context),
onPressed: () async {
// Set up clinic rating and show clinic rating view
// appointmentRatingViewModel!.setTitle(LocaleKeys.rateDoctor.tr(context: context),);
// appointmentRatingViewModel!.setSubTitle(LocaleKeys.howWasYourLastVisitWithDoctor.tr(context: context),);
// appointmentRatingViewModel!.setClinicOrDoctor(true);
LoaderBottomSheet.showLoader();
await myAppointmentsViewModel.submitDoctorRating(docRate: rating, docNote: notes, patientAppointmentHistoryResponseModel: widget.patientAppointmentHistoryResponseModel);
// await appointmentRatingViewModel!.submitClinicRating(clinicRate: rating, clinicNote: note);
LoaderBottomSheet.hideLoader();
Navigator.pop(context);
setState(() {});
},
),
),
],
),
),
),
],
),
);
}
}

@ -47,7 +47,7 @@ class AskDoctorRequestTypeSelect extends StatelessWidget {
listTileTheme: ListTileThemeData(horizontalTitleGap: 4),
),
child: RadioListTile<int>(
title: (askDoctorRequestTypeList[index].description ?? '').toText14(weight: FontWeight.w500),
title: (askDoctorRequestTypeList[index].description ?? '').toText14(isBold: true),
value: index,
fillColor: WidgetStateProperty.resolveWith((states) {
if (states.contains(WidgetState.selected)) {

@ -0,0 +1,67 @@
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/core/utils/date_util.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/appointment_details_resp_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/models/resp_models/patient_appointment_history_response_model.dart';
import 'package:hmg_patient_app_new/widgets/chip/app_custom_chip_widget.dart';
import 'dart:ui' as ui;
class BuildDoctorRowAppointmentRating extends StatelessWidget {
final PatientAppointmentHistoryResponseModel patientAppointmentHistoryResponseModel;
BuildDoctorRowAppointmentRating({super.key, required this.patientAppointmentHistoryResponseModel});
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(16),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.network(
patientAppointmentHistoryResponseModel.doctorImageURL!,
width: 63.h,
height: 63.h,
fit: BoxFit.cover,
).circle(100),
SizedBox(width: 16.h),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
patientAppointmentHistoryResponseModel.doctorNameObj!.toString().toText16(isBold: true, maxlines: 1),
SizedBox(height: 8.h),
Wrap(
direction: Axis.horizontal,
spacing: 3.h,
runSpacing: 4.h,
children: [
AppCustomChipWidget(
labelText: patientAppointmentHistoryResponseModel.projectName.toString(),
),
AppCustomChipWidget(
labelText: patientAppointmentHistoryResponseModel.clinicName.toString(),
),
Directionality(
textDirection: ui.TextDirection.ltr,
child: AppCustomChipWidget(
labelPadding: EdgeInsetsDirectional.only(start: -8.w, end: 6.w),
icon: AppAssets.ic_date_filter,
labelText: DateUtil.formatDateToDate(DateUtil.convertStringToDate(patientAppointmentHistoryResponseModel.appointmentDate), false),
isEnglishOnly: true,
),
),
],
),
],
),
),
],
),
);
}
}

@ -82,7 +82,7 @@ class FacilitySelectionItem extends StatelessWidget {
subTitle,
style: TextStyle(
fontSize: 12.h,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
color: AppColors.greyTextColor,
),
),

@ -39,7 +39,7 @@ class FacilityTypeSelectionWidget extends StatelessWidget {
LocaleKeys.selectFacilitiesSubTitle.tr(),
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
color: AppColors.greyTextColor,
),
),

@ -36,7 +36,7 @@ import '../../../emergency_services/call_ambulance/widgets/type_selection_widget
// LocaleKeys.selectHospital.tr(context: context),
// style: TextStyle(
// fontSize: 21,
// fontWeight: FontWeight.w600,
// isBold: true,
// color: AppColors.blackColor,
// ),
// ),
@ -44,7 +44,7 @@ import '../../../emergency_services/call_ambulance/widgets/type_selection_widget
// LocaleKeys.selectHospitalSubTitle.tr(context: context),
// style: TextStyle(
// fontSize: 16,
// fontWeight: FontWeight.w500,
// isBold: true,
// color: AppColors.greyTextColor,
// ),
// ),
@ -186,7 +186,7 @@ class HospitalBottomSheetBody extends StatelessWidget {
children: [
LocaleKeys.sortByLocation.tr(context: context).toText14(isBold: true),
// SizedBox(height: 4.h),
LocaleKeys.sortByNearestLocation.tr(context: context).toText11(color: AppColors.textColorLight, weight: FontWeight.w500),
LocaleKeys.sortByNearestLocation.tr(context: context).toText11(color: AppColors.textColorLight, isBold: true),
],
),
],

@ -68,7 +68,7 @@ class RegionListItem extends StatelessWidget {
text: TextSpan(
text: count,
style: TextStyle(fontSize: 12.h, fontWeight: FontWeight.w700, color: AppColors.blackColor),
children: [TextSpan(text: title, style: TextStyle(fontSize: 12.h, fontWeight: FontWeight.w500, color: AppColors.blackColor))])),
children: [TextSpan(text: title, style: TextStyle(fontSize: 12.h, fontWeight: FontWeight.w600, color: AppColors.blackColor))])),
);
}
@ -93,7 +93,7 @@ class RegionListItem extends StatelessWidget {
subTitle,
style: TextStyle(
fontSize: 12.h,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
color: AppColors.greyTextColor,
),
),

@ -133,7 +133,7 @@ class _RegionBottomSheetBodyState extends State<RegionBottomSheetBody> {
// children: [
// LocaleKeys.sortByLocation.tr(context: context).toText14(isBold: true),
// // SizedBox(height: 4.h),
// LocaleKeys.sortByNearestLocation.tr(context: context).toText11(color: AppColors.textColorLight, weight: FontWeight.w500),
// LocaleKeys.sortByNearestLocation.tr(context: context).toText11(color: AppColors.textColorLight, isBold: true),
// ],
// ),
// ],

@ -203,7 +203,7 @@ class AskDoctorAppointmentCard extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
// height: isTablet || isFoldable ? 46.h : 40.h,

@ -77,7 +77,7 @@ class DoctorResponseTransactions extends StatelessWidget {
borderColor: AppColors.greyColor,
textColor: AppColors.textColor,
fontSize: 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 10.r,
height: 40.h,
).paddingSymmetrical(16.w, 0.h),
@ -93,7 +93,7 @@ class DoctorResponseTransactions extends StatelessWidget {
color: AppColors.infoColor.withAlpha(20),
borderRadius: BorderRadius.circular(8.r),
),
child: doctorResponseModel.requestTypeDescription!.toText12(color: AppColors.infoColor, fontWeight: FontWeight.w500),
child: doctorResponseModel.requestTypeDescription!.toText12(color: AppColors.infoColor, isBold: true),
),
],
),
@ -115,7 +115,7 @@ class DoctorResponseTransactions extends StatelessWidget {
color: AppColors.infoColor.withAlpha(20),
borderRadius: BorderRadius.circular(8.r),
),
child: doctorResponseModel.transactions![index].doctorResponse!.toText12(color: AppColors.textColor, fontWeight: FontWeight.w500),
child: doctorResponseModel.transactions![index].doctorResponse!.toText12(color: AppColors.textColor, isBold: true),
),
SizedBox(width: 8.w),
Image.network("https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown.png", fit: BoxFit.cover, width: 42.w, height: 42.h).circle(100.r),

@ -116,7 +116,7 @@ class LoginScreenState extends State<LoginScreen> {
child: RichText(
textAlign: TextAlign.center,
text: TextSpan(
style: context.dynamicTextStyle(color: AppColors.textColor, fontSize: 14.f, height: 26 / 16, fontWeight: FontWeight.w500),
style: context.dynamicTextStyle(color: AppColors.textColor, fontSize: 14.f, height: 26 / 16, fontWeight: FontWeight.w600,),
children: <TextSpan>[
TextSpan(text: LocaleKeys.dontHaveAccount.tr(context: context), style: context.dynamicTextStyle()),
TextSpan(text: " "),
@ -126,7 +126,7 @@ class LoginScreenState extends State<LoginScreen> {
color: AppColors.primaryRedColor,
fontSize: 14.f, // Adjusted to sizer unit
height: 26 / 16, // Ratio
fontWeight: FontWeight.w500),
fontWeight: FontWeight.w600,),
recognizer: TapGestureRecognizer()
..onTap = () {
Navigator.of(context).push(

@ -49,13 +49,13 @@ class QuickLoginState extends State<QuickLogin> {
],
),
Utils.showLottie(context: context, assetPath: AppAnimations.checkmark, width: 120, height: 120, repeat: true),
LocaleKeys.allSet.tr(context: context).toText16(textAlign: TextAlign.center, weight: FontWeight.w500)
LocaleKeys.allSet.tr(context: context).toText16(textAlign: TextAlign.center, isBold: true)
// Text(
// ' TranslationBase.of(context).allSet',
// textAlign: TextAlign.center,
// style: context.dynamicTextStyle(
// fontSize: 16,
// fontWeight: FontWeight.w500,
// isBold: true,
// color: Colors.black,
// ),
// ),

@ -160,7 +160,7 @@ class _RegisterNew extends State<RegisterNew> {
children: [
Text(
LocaleKeys.iAcceptThe.tr(context: context),
style: context.dynamicTextStyle(fontSize: 14.f, fontWeight: FontWeight.w500, color: Color(0xFF2E3039)),
style: context.dynamicTextStyle(fontSize: 14.f, fontWeight: FontWeight.w600, color: Color(0xFF2E3039)),
),
GestureDetector(
onTap: () {
@ -173,7 +173,7 @@ class _RegisterNew extends State<RegisterNew> {
" ${LocaleKeys.termsConditoins.tr(context: context)}",
style: context.dynamicTextStyle(
fontSize: 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
color: AppColors.primaryRedColor,
decoration: TextDecoration.underline,
decorationColor: AppColors.primaryRedBorderColor,
@ -185,7 +185,7 @@ class _RegisterNew extends State<RegisterNew> {
// Expanded(
// child: Text(
// LocaleKeys.iAcceptTermsConditions.tr(context: context).split("the").first,
// style: context.dynamicTextStyle(fontSize: 14.fSize, fontWeight: FontWeight.w500, color: Color(0xFF2E3039)),
// style: context.dynamicTextStyle(fontSize: 14.fSize, isBold: true, color: Color(0xFF2E3039)),
// ),
// ),
],
@ -222,7 +222,7 @@ class _RegisterNew extends State<RegisterNew> {
color: Colors.black,
fontSize: 16.f,
height: 26 / 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
),
children: <TextSpan>[
TextSpan(text: LocaleKeys.alreadyHaveAccount.tr(context: context), style: context.dynamicTextStyle()),
@ -233,7 +233,7 @@ class _RegisterNew extends State<RegisterNew> {
color: AppColors.primaryRedColor,
fontSize: 16.f,
height: 26 / 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
),
recognizer: TapGestureRecognizer()
..onTap = () {

@ -140,7 +140,7 @@ class _RegisterNew extends State<RegisterNewStep2> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
LocaleKeys.personalDetailsVerification.tr(context: context).toText26(color: AppColors.textColor, weight: FontWeight.w600, letterSpacing: -2),
LocaleKeys.personalDetailsVerification.tr(context: context).toText26(color: AppColors.textColor, isBold: true, letterSpacing: -2),
SizedBox(height: 24.h),
// Insurance Card Section

@ -145,7 +145,7 @@ class _SavedLogin extends State<SavedLogin> {
borderColor: AppColors.primaryRedColor,
textColor: Colors.white,
fontSize: 12.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
height: 40.h,
padding: EdgeInsets.symmetric(vertical: 10.h),
@ -162,7 +162,7 @@ class _SavedLogin extends State<SavedLogin> {
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Text(
LocaleKeys.oR.tr(),
style: context.dynamicTextStyle(fontSize: 16.f, fontWeight: FontWeight.w500),
style: context.dynamicTextStyle(fontSize: 16.f, fontWeight: FontWeight.w600,),
),
),
SizedBox(height: 24.h),
@ -305,7 +305,7 @@ class _SavedLogin extends State<SavedLogin> {
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.fromLTRB(0, 10.h, 0, 10.h),
// icon: "assets/images/svg/apple-finder.svg",
@ -330,7 +330,7 @@ class _SavedLogin extends State<SavedLogin> {
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
fontSize: 15.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.fromLTRB(0, 10.h, 0, 10.h),
// icon: "assets/images/svg/apple-finder.svg",

@ -146,11 +146,11 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.city.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.city.tr().toText16(color: AppColors.textColor, isBold: true),
(appState.isArabic()
? (bloodDonationVM.selectedCity?.descriptionN ?? LocaleKeys.select.tr())
: bloodDonationVM.selectedCity?.description ?? LocaleKeys.select.tr(context: context))
.toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
.toText14(color: AppColors.greyTextColor, isBold: true),
],
),
],
@ -174,11 +174,11 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.gender.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.gender.tr().toText16(color: AppColors.textColor, isBold: true),
(appState.isArabic()
? (bloodDonationVM.selectedGender?.typeAr ?? LocaleKeys.select.tr())
: bloodDonationVM.selectedGender?.type ?? LocaleKeys.select.tr(context: context))
.toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
.toText14(color: AppColors.greyTextColor, isBold: true),
],
),
],
@ -205,12 +205,12 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.bloodType.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
// bloodDonationVM.selectedBloodType?.toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.bloodType.tr().toText16(color: AppColors.textColor, isBold: true),
// bloodDonationVM.selectedBloodType?.toText14(color: AppColors.greyTextColor, isBold: true),
(appState.isArabic()
? (bloodDonationVM.selectedBloodType ?? LocaleKeys.select.tr())
: bloodDonationVM.selectedBloodType ?? LocaleKeys.select.tr(context: context))
.toText14(color: AppColors.greyTextColor, weight: FontWeight.w500)
.toText14(color: AppColors.greyTextColor, isBold: true)
],
),
],
@ -264,7 +264,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
children: [
Text(
"${LocaleKeys.iAcceptThe.tr()} ",
style: context.dynamicTextStyle(fontSize: 14.f, fontWeight: FontWeight.w500, color: Color(0xFF2E3039)),
style: context.dynamicTextStyle(fontSize: 14.f, fontWeight: FontWeight.w600, color: Color(0xFF2E3039)),
),
GestureDetector(
onTap: () {
@ -282,7 +282,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
LocaleKeys.termsConditoins.tr(),
style: context.dynamicTextStyle(
fontSize: 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
color: AppColors.primaryRedColor,
decoration: TextDecoration.underline,
decorationColor: AppColors.primaryRedBorderColor,
@ -294,7 +294,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
// Expanded(
// child: Text(
// LocaleKeys.iAcceptTermsConditions.tr().split("the").first,
// style: context.dynamicTextStyle(fontSize: 14.fSize, fontWeight: FontWeight.w500, color: Color(0xFF2E3039)),
// style: context.dynamicTextStyle(fontSize: 14.fSize, isBold: true, color: Color(0xFF2E3039)),
// ),
// ),
],
@ -365,7 +365,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 50.h,

@ -138,7 +138,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
fit: BoxFit.cover,
).circle(100).toShimmer2(isShow: true, radius: 50.r),
SizedBox(height: 8.h),
("Dr. John").toString().toText12(fontWeight: FontWeight.w500, isCenter: true, maxLine: 2).toShimmer2(isShow: true),
("Dr. John").toString().toText12(isBold: true, isCenter: true, maxLine: 2).toShimmer2(isShow: true),
],
);
},
@ -157,7 +157,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
LocaleKeys.recentVisits.tr(context: context).toText18(isBold: true).paddingSymmetrical(24.w, 0.h),
Row(
children: [
LocaleKeys.viewAll.tr(context: context).toText14(color: AppColors.primaryRedColor, weight: FontWeight.w500),
LocaleKeys.viewAll.tr(context: context).toText14(color: AppColors.primaryRedColor, isBold: true),
SizedBox(width: 2.h),
Icon(Icons.arrow_forward_ios, color: AppColors.primaryRedColor, size: 14.h),
],
@ -201,7 +201,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
width: 80.w,
child: (myAppointmentsVM.patientMyDoctorsList[index].doctorName)
.toString()
.toText12(fontWeight: FontWeight.w500, isCenter: true, maxLine: 2)
.toText12(isBold: true, isCenter: true, maxLine: 2)
.toShimmer2(isShow: false),
),
],
@ -312,7 +312,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
child: Column(
children: [
Center(
child: LocaleKeys.noFavouriteDoctors.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
child: LocaleKeys.noFavouriteDoctors.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
),
SizedBox(height: 12.h),
CustomButton(
@ -324,7 +324,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
padding: EdgeInsets.fromLTRB(10.h, 0, 10.h, 0),
icon: AppAssets.add_icon,
iconColor: AppColors.primaryRedColor,
@ -342,16 +342,33 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
SizedBox(height: 24.h),
LocaleKeys.favourites.tr(context: context).toText18(isBold: true).paddingSymmetrical(24.w, 0.h),
SizedBox(height: 16.h),
Row(
children: [
SizedBox(
height: 110.h,
child: ListView.separated(
scrollDirection: Axis.horizontal,
itemCount: myAppointmentsVM.patientFavouriteDoctorsList.length,
itemCount: myAppointmentsVM.patientFavouriteDoctorsList.length + 1,
shrinkWrap: true,
padding: EdgeInsets.only(left: 24.w, right: 24.w),
itemBuilder: (context, index) {
// Last item: static "Add" button
if (index == myAppointmentsVM.patientFavouriteDoctorsList.length) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Utils.buildSvgWithAssets(icon: AppAssets.add_new_family_icon, height: 64.h, width: 64.h),
SizedBox(
width: 80.w,
child: LocaleKeys.add.tr(context: context).toText12(
color: AppColors.textColor,
isBold: true,
isCenter: true,
).paddingOnly(top: 4.h),
),
],
).onPress(() {
Navigator.of(context).push(CustomPageRoute(page: SearchDoctorByName()));
});
}
return AnimationConfiguration.staggeredList(
position: index,
duration: const Duration(milliseconds: 1000),
@ -373,7 +390,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
width: 80.w,
child: (myAppointmentsVM.patientFavouriteDoctorsList[index].doctorName)
.toString()
.toText12(fontWeight: FontWeight.w500, isCenter: true, maxLine: 2)
.toText12(isBold: true, isCenter: true, maxLine: 2)
.toShimmer2(isShow: false),
),
],
@ -410,17 +427,6 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
separatorBuilder: (BuildContext cxt, int index) => SizedBox(width: 8.h),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Utils.buildSvgWithAssets(icon: AppAssets.add_new_family_icon, height: 64.h, width: 64.h),
SizedBox(width: 80.w, child: LocaleKeys.add.tr(context: context).toText12(color: AppColors.textColor, fontWeight: FontWeight.w500, isCenter: true).paddingOnly(top: 4.h)),
],
).onPress(() {
Navigator.of(context).push(CustomPageRoute(page: SearchDoctorByName()));
}),
],
),
],
);
}),
@ -465,8 +471,8 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.searchByClinic.tr(context: context).toText14(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.tapToSelectClinic.tr(context: context).toText12(color: AppColors.primaryRedColor, fontWeight: FontWeight.w500),
LocaleKeys.searchByClinic.tr(context: context).toText14(color: AppColors.textColor, isBold: true),
LocaleKeys.tapToSelectClinic.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true),
],
),
],
@ -497,8 +503,8 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.searchByDoctor.tr(context: context).toText14(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.tapToSelect.tr(context: context).toText12(color: AppColors.primaryRedColor, fontWeight: FontWeight.w500),
LocaleKeys.searchByDoctor.tr(context: context).toText14(color: AppColors.textColor, isBold: true),
LocaleKeys.tapToSelect.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true),
],
),
],
@ -527,8 +533,8 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.searchByRegion.tr(context: context).toText14(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.centralRegion.tr(context: context).toText12(color: AppColors.primaryRedColor, fontWeight: FontWeight.w500),
LocaleKeys.searchByRegion.tr(context: context).toText14(color: AppColors.textColor, isBold: true),
LocaleKeys.centralRegion.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true),
],
),
],
@ -571,8 +577,8 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.immediateConsultation.tr(context: context).toText14(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.tapToSelectClinic.tr(context: context).toText12(color: AppColors.primaryRedColor, fontWeight: FontWeight.w500),
LocaleKeys.immediateConsultation.tr(context: context).toText14(color: AppColors.textColor, isBold: true),
LocaleKeys.tapToSelectClinic.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true),
],
),
],
@ -613,8 +619,8 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.scheduledConsultation.tr(context: context).toText14(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.tapToSelectClinic.tr(context: context).toText12(color: AppColors.primaryRedColor, fontWeight: FontWeight.w500),
LocaleKeys.scheduledConsultation.tr(context: context).toText14(color: AppColors.textColor, isBold: true),
LocaleKeys.tapToSelectClinic.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true),
],
),
],
@ -654,10 +660,10 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.notSureHelpMeChooseClinic.tr(context: context).toText16(weight: FontWeight.w600, color: AppColors.textColor),
LocaleKeys.notSureHelpMeChooseClinic.tr(context: context).toText16(isBold: true, color: AppColors.textColor),
SizedBox(height: 8.h),
LocaleKeys.mentionYourSymptomsAndFindDoctors.tr(context: context).toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: AppColors.greyTextColor,
),
],
@ -817,7 +823,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
getTitle(AppointmentViaRegionViewmodel data) {
if (data.selectedRegionId == null) {
return LocaleKeys.selectRegion.tr(context: context).toText20(weight: FontWeight.w600);
return LocaleKeys.selectRegion.tr(context: context).toText20(isBold: true);
} else {
return Transform.flip(
flipX: data.isArabic ? true : false,
@ -845,7 +851,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.immediateService.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.noNeedToWaitGetMedicalConsultation.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.noNeedToWaitGetMedicalConsultation.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -861,7 +867,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.noVisitRequired.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.livecarePoint5.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.livecarePoint5.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -877,7 +883,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.doctorWillContact.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.specialisedDoctorWillContactYou.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.specialisedDoctorWillContactYou.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -893,7 +899,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.freeMedicineDelivery.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.offersFreeMedicineDelivery.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.offersFreeMedicineDelivery.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -909,7 +915,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,
@ -932,7 +938,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
children: [
LocaleKeys.notSureHelpMeChooseClinic.tr(context: context).toText28(color: AppColors.textColor, isBold: true, height: 1.5),
SizedBox(height: 4.h),
LocaleKeys.mentionYourSymptomsAndFindDoctors.tr(context: context).toText12(color: AppColors.greyTextColor, fontWeight: FontWeight.w500,),
LocaleKeys.mentionYourSymptomsAndFindDoctors.tr(context: context).toText12(color: AppColors.greyTextColor, isBold: true,),
SizedBox(height: 24.h),
CustomButton(
text: LocaleKeys.yesPleaseINeedHelp.tr(context: context),
@ -944,7 +950,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
// padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 56.h,
@ -959,7 +965,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
borderColor: AppColors.chipSecondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
// padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 56.h,

@ -70,7 +70,7 @@ class DoctorsFilters extends StatelessWidget{
LocaleKeys.clearAllFilters.tr(),
style:TextStyle(
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
fontSize: 14.f,
color: AppColors.errorColor
)
@ -181,7 +181,7 @@ class DoctorsFilters extends StatelessWidget{
textColor: Colors.white,
fontSize: 16.f,
padding: EdgeInsets.zero,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 10.r,
icon: AppAssets.add_icon,
iconColor: AppColors.primaryRedColor,

@ -98,7 +98,7 @@ class DoctorProfilePage extends StatelessWidget {
),
(bookAppointmentsViewModel.doctorsProfileResponseModel.specialty!.isNotEmpty ? bookAppointmentsViewModel.doctorsProfileResponseModel.specialty!.first : "")
.toString()
.toText18(weight: FontWeight.w500, color: AppColors.primaryRedColor),
.toText18(isBold: true, color: AppColors.primaryRedColor),
],
),
],
@ -137,7 +137,7 @@ class DoctorProfilePage extends StatelessWidget {
children: [
Utils.buildSvgWithAssets(icon: AppAssets.doctor_profile_rating_icon, width: 48.w, height: 48.h, fit: BoxFit.contain, applyThemeColor: false),
SizedBox(height: 16.h),
LocaleKeys.ratings.tr(context: context).toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor),
LocaleKeys.ratings.tr(context: context).toText12(isBold: true, color: AppColors.greyTextColor),
bookAppointmentsViewModel.doctorsProfileResponseModel.decimalDoctorRate
.toString()
.toText16(isBold: true, color: AppColors.textColor, isUnderLine: true, decorationColor: AppColors.textColor, fontFamily: "Poppins"),
@ -158,7 +158,7 @@ class DoctorProfilePage extends StatelessWidget {
children: [
Utils.buildSvgWithAssets(icon: AppAssets.doctor_profile_reviews_icon, width: 48.w, height: 48.h, fit: BoxFit.contain, applyThemeColor: false),
SizedBox(height: 16.h),
LocaleKeys.reviews.tr(context: context).toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor),
LocaleKeys.reviews.tr(context: context).toText12(isBold: true, color: AppColors.greyTextColor),
NumberFormat.decimalPattern().format(bookAppointmentsViewModel.doctorsProfileResponseModel.noOfPatientsRate ?? 0)
.toText16(isBold: true, color: AppColors.textColor, isUnderLine: true, decorationColor: AppColors.textColor, fontFamily: "Poppins"),
],
@ -178,9 +178,9 @@ class DoctorProfilePage extends StatelessWidget {
SizedBox(height: 16.h),
Divider(color: AppColors.borderOnlyColor.withValues(alpha: 0.1), height: 1.h),
SizedBox(height: 16.h),
LocaleKeys.information.tr(context: context).toText14(weight: FontWeight.w600, color: AppColors.textColor),
LocaleKeys.information.tr(context: context).toText14(isBold: true, color: AppColors.textColor),
SizedBox(height: 6.h),
(bookAppointmentsViewModel.doctorsProfileResponseModel.doctorProfileInfo ?? "").trim().toText12(fontWeight: FontWeight.w600, color: AppColors.greyTextColor),
(bookAppointmentsViewModel.doctorsProfileResponseModel.doctorProfileInfo ?? "").trim().toText12(isBold: true, color: AppColors.greyTextColor),
SizedBox(height: 24.h),
],
).paddingSymmetrical(24.h, 0.h),
@ -257,7 +257,7 @@ class DoctorProfilePage extends StatelessWidget {
borderColor: AppColors.primaryRedColor,
textColor: Colors.white,
fontSize: 16,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,

@ -118,7 +118,7 @@ class BodyPartsListing extends StatelessWidget {
textColor: _isSelected ? AppColors.chipPrimaryRedBorderColor : AppColors.blackColor,
// labelText: "${parts[index].timeDuration!} ${LocaleKeys.mins.tr()}",
richText: "${parts[index].timeDuration!} ${LocaleKeys.mins.tr()}".toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: _isSelected ? AppColors.chipPrimaryRedBorderColor : AppColors.blackColor,
),
icon: AppAssets.waiting_time_clock,

@ -169,7 +169,7 @@ class ImmediateLiveCarePaymentDetails extends StatelessWidget {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
LocaleKeys.insuranceExpiredOrInactive.tr(context: context).toText14(color: AppColors.primaryRedColor, weight: FontWeight.w500).paddingSymmetrical(24.h, 0.h),
LocaleKeys.insuranceExpiredOrInactive.tr(context: context).toText14(color: AppColors.primaryRedColor, isBold: true).paddingSymmetrical(24.h, 0.h),
CustomButton(
text: LocaleKeys.updateInsurance.tr(context: context),
onPressed: () {
@ -198,7 +198,7 @@ class ImmediateLiveCarePaymentDetails extends StatelessWidget {
borderColor: AppColors.secondaryLightRedBorderColor,
textColor: AppColors.whiteColor,
fontSize: 10,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 8,
padding: EdgeInsets.fromLTRB(15, 0, 15, 0),
height: 30.h,
@ -295,7 +295,7 @@ class ImmediateLiveCarePaymentDetails extends StatelessWidget {
borderColor: AppColors.successColor,
textColor: AppColors.whiteColor,
fontSize: 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,
@ -338,7 +338,7 @@ class ImmediateLiveCarePaymentDetails extends StatelessWidget {
borderColor: AppColors.infoColor,
textColor: AppColors.whiteColor,
fontSize: 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,
@ -364,7 +364,8 @@ class ImmediateLiveCarePaymentDetails extends StatelessWidget {
bool cameraGranted = statuses[Permission.camera]?.isGranted ?? false;
bool micGranted = statuses[Permission.microphone]?.isGranted ?? false;
bool notifGranted = statuses[Permission.notification]?.isGranted ?? false;
bool alertWindowGranted = Platform.isAndroid ? (statuses[Permission.systemAlertWindow]?.isGranted ?? false) : true;
// bool alertWindowGranted = Platform.isAndroid ? (statuses[Permission.systemAlertWindow]?.isGranted ?? false) : true;
bool alertWindowGranted = true;
// If all required permissions are already granted
if (cameraGranted && micGranted && notifGranted && alertWindowGranted) return true;

@ -234,7 +234,7 @@ class _ImmediateLiveCarePaymentPageState extends State<ImmediateLiveCarePaymentP
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
LocaleKeys.insuranceExpiredOrInactive.tr().toText14(color: AppColors.primaryRedColor, weight: FontWeight.w500).paddingSymmetrical(24.h, 0.h),
LocaleKeys.insuranceExpiredOrInactive.tr().toText14(color: AppColors.primaryRedColor, isBold: true).paddingSymmetrical(24.h, 0.h),
CustomButton(
text: LocaleKeys.updateInsurance.tr(context: context),
onPressed: () {
@ -248,7 +248,7 @@ class _ImmediateLiveCarePaymentPageState extends State<ImmediateLiveCarePaymentP
borderColor: AppColors.secondaryLightRedBorderColor,
textColor: AppColors.whiteColor,
fontSize: 10,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 8,
padding: EdgeInsets.fromLTRB(15, 0, 15, 0),
height: 30.h,

@ -107,7 +107,7 @@ class _ImmediateLiveCarePendingRequestPageState extends State<ImmediateLiveCareP
SizedBox(height: 8.h),
SizedBox(height: 8.h),
LocaleKeys.yourTurnIsAfterPatients
.tr(namedArgs: {'count': (immediateLiveCareViewModel.patientLiveCareHistoryList[0].patCount ?? 0).toString()}, context: context).toText14(weight: FontWeight.w500),
.tr(namedArgs: {'count': (immediateLiveCareViewModel.patientLiveCareHistoryList[0].patCount ?? 0).toString()}, context: context).toText14(isBold: true),
// "Your turn is after ${immediateLiveCareViewModel.patientLiveCareHistoryList[0].patCount} patients.".toText16(isBold: true),
SizedBox(height: 8.h),
],
@ -165,7 +165,7 @@ class _ImmediateLiveCarePendingRequestPageState extends State<ImmediateLiveCareP
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,

@ -79,7 +79,7 @@ class LiveCareClinicCard extends StatelessWidget {
textColor: AppColors.successColor,
borderWidth: 1.h,
fontSize: (isFoldable || isTablet) ? 12.f : 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 40.h,

@ -71,7 +71,7 @@ class SelectLiveCareCallType extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
title.toText16(isBold: true, color: AppColors.textColor),
subTitle.toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor),
subTitle.toText12(isBold: true, color: AppColors.greyTextColor),
],
),
),

@ -101,7 +101,7 @@ class _ReviewAppointmentPageState extends State<ReviewAppointmentPage> {
SizedBox(height: 2.h),
(bookAppointmentsViewModel.selectedDoctor.speciality!.isNotEmpty ? bookAppointmentsViewModel.selectedDoctor.speciality!.first : "")
.toString()
.toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor, maxLine: 1),
.toText12(isBold: true, color: AppColors.greyTextColor, maxLine: 1),
],
),
],
@ -235,7 +235,7 @@ class _ReviewAppointmentPageState extends State<ReviewAppointmentPage> {
borderColor: AppColors.primaryRedColor,
textColor: Colors.white,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,

@ -154,7 +154,7 @@ class _SearchDoctorByNameState extends State<SearchDoctorByName> {
// borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.textColor.withOpacity(0.2),
// textColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.blackColor,
// fontSize: 12,
// fontWeight: FontWeight.w500,
// isBold: true,
// borderRadius: 10,
// padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
// height: 40.h,
@ -169,7 +169,7 @@ class _SearchDoctorByNameState extends State<SearchDoctorByName> {
// borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.textColor.withOpacity(0.2) : AppColors.primaryRedColor,
// textColor: bookAppointmentsVM.isSortByClinic ? AppColors.blackColor : AppColors.primaryRedColor,
// fontSize: 12,
// fontWeight: FontWeight.w500,
// isBold: true,
// borderRadius: 10,
// padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
// height: 40.h,
@ -306,7 +306,7 @@ class _SearchDoctorByNameState extends State<SearchDoctorByName> {
// borderColor: AppColors.greyColor,
// textColor: AppColors.blackColor,
// fontSize: 10,
// fontWeight: FontWeight.w500,
// isBold: true,
// borderRadius: 8,
// padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
// height: 30.h),
@ -319,7 +319,7 @@ class _SearchDoctorByNameState extends State<SearchDoctorByName> {
// bookAppointmentsVM.isSortByClinic
// ? (groupedDoctors[index].first.clinicName ?? 'Unknown')
// : (groupedDoctors[index].first.projectName ?? 'Unknown'),
// style: TextStyle(fontSize: 16.h, fontWeight: FontWeight.w600),
// style: TextStyle(fontSize: 16.h, isBold: true),
// overflow: TextOverflow.ellipsis,
// ),
// // Expanded content - list of doctors in this group
@ -440,7 +440,7 @@ class _SearchDoctorByNameState extends State<SearchDoctorByName> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10.r,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,

@ -98,7 +98,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
backgroundColor: AppColors.primaryRedColor,
borderColor: AppColors.primaryRedColor,
borderRadius: 12.r,
fontWeight: FontWeight.w500),
fontWeight: FontWeight.w600,),
),
child: getCalculatorResultWidget(type: widget.calculatorType!, calculatedResult: widget.calculatedResult).paddingSymmetrical(18.w, 24.h),
);
@ -619,7 +619,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 8.w,
),
calculatedResult["lastPeriodDate"].toString().toText16(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["lastPeriodDate"].toString().toText16(color: AppColors.successColor, isBold: true),
],
),
],
@ -641,7 +641,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 8.w,
),
calculatedResult["ovulationDate"].toString().toText16(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["ovulationDate"].toString().toText16(color: AppColors.successColor, isBold: true),
],
),
SizedBox(height: 8.h),
@ -655,7 +655,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
borderRadius: 8.h,
textColor: AppColors.textColor),
SizedBox(height: 16.h),
"Fertility Window".toText16(color: AppColors.textColor, weight: FontWeight.w600),
"Fertility Window".toText16(color: AppColors.textColor, isBold: true),
SizedBox(height: 8.h),
Row(
children: [
@ -663,7 +663,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 8.w,
),
calculatedResult["fertileWindowStart"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["fertileWindowStart"].toString().toText13(color: AppColors.successColor, isBold: true),
SizedBox(
width: 4.w,
),
@ -671,12 +671,12 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 4.w,
),
calculatedResult["fertileWindowEnd"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["fertileWindowEnd"].toString().toText13(color: AppColors.successColor, isBold: true),
],
),
SizedBox(height: 8.h),
"This is your fertile window. Maintaining a healthy calorie range supports your body during this period, considering your Basal Metabolic Rate and activity. Your Body Mass Index is within the healthy range."
.toText12(height: 1.5, color: AppColors.textColorLight, fontWeight: FontWeight.w500)
.toText12(height: 1.5, color: AppColors.textColorLight, isBold: true)
],
),
),
@ -697,7 +697,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
),
Row(
children: [
"Tips to keep in mind".toText16(color: AppColors.textColor, weight: FontWeight.w600),
"Tips to keep in mind".toText16(color: AppColors.textColor, isBold: true),
],
),
],
@ -735,7 +735,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
children: [
Utils.buildSvgWithAssets(icon: AppAssets.pregnancyDueDateAccordion, width: 30.h, height: 30.h),
SizedBox(width: 8.w),
calculatedResult["dueDate"].toString().toText16(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["dueDate"].toString().toText16(color: AppColors.successColor, isBold: true),
],
),
Expanded(child: SizedBox(width: 8.w)),
@ -762,7 +762,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
children: [
Row(
children: [
"First Trimester".toText16(color: AppColors.textColor, weight: FontWeight.w600),
"First Trimester".toText16(color: AppColors.textColor, isBold: true),
Expanded(child: SizedBox(width: 8.h)),
CustomChipWidget(
height: 30.h,
@ -782,7 +782,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 8.w,
),
calculatedResult["firstTrimester"]["start"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["firstTrimester"]["start"].toString().toText13(color: AppColors.successColor, isBold: true),
SizedBox(
width: 4.w,
),
@ -790,7 +790,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 4.w,
),
calculatedResult["firstTrimester"]["end"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["firstTrimester"]["end"].toString().toText13(color: AppColors.successColor, isBold: true),
],
),
SizedBox(height: 8.h),
@ -806,7 +806,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
children: [
Row(
children: [
"Second Trimester".toText16(color: AppColors.textColor, weight: FontWeight.w600),
"Second Trimester".toText16(color: AppColors.textColor, isBold: true),
Expanded(child: SizedBox(width: 8.h)),
CustomChipWidget(
height: 30.h,
@ -826,7 +826,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 8.w,
),
calculatedResult["secondTrimester"]["start"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["secondTrimester"]["start"].toString().toText13(color: AppColors.successColor, isBold: true),
SizedBox(
width: 4.w,
),
@ -834,7 +834,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 4.w,
),
calculatedResult["secondTrimester"]["end"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["secondTrimester"]["end"].toString().toText13(color: AppColors.successColor, isBold: true),
],
),
SizedBox(height: 8.h),
@ -850,7 +850,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
children: [
Row(
children: [
"Third Trimester".toText16(color: AppColors.textColor, weight: FontWeight.w600),
"Third Trimester".toText16(color: AppColors.textColor, isBold: true),
Expanded(child: SizedBox(width: 8.h)),
CustomChipWidget(
height: 30.h,
@ -870,7 +870,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 8.w,
),
calculatedResult["thirdTrimester"]["start"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["thirdTrimester"]["start"].toString().toText13(color: AppColors.successColor, isBold: true),
SizedBox(
width: 4.w,
),
@ -878,7 +878,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
SizedBox(
width: 4.w,
),
calculatedResult["thirdTrimester"]["end"].toString().toText13(color: AppColors.successColor, weight: FontWeight.w600),
calculatedResult["thirdTrimester"]["end"].toString().toText13(color: AppColors.successColor, isBold: true),
],
),
SizedBox(height: 8.h),
@ -904,7 +904,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
),
),
Expanded(
child: text.toText12(color: AppColors.textColorLight, fontWeight: FontWeight.w500, height: 1.2.h),
child: text.toText12(color: AppColors.textColorLight, isBold: true, height: 1.2.h),
),
],
);
@ -924,7 +924,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
children: [
('${calories.toStringAsFixed(0)}').toText32(color: getTextColor(title), isBold: true),
SizedBox(width: 10.w),
hide ? SizedBox() : 'kcal/day'.toText12(color: AppColors.inputLabelTextColor, isBold: true, fontWeight: FontWeight.w600)
hide ? SizedBox() : 'kcal/day'.toText12(color: AppColors.inputLabelTextColor, isBold: true)
],
),
_buildStatusIcon(title)
@ -950,9 +950,9 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
),
SizedBox(height: 8.h),
],
title.toText16(color: AppColors.textColor, weight: FontWeight.w600),
title.toText16(color: AppColors.textColor, isBold: true),
SizedBox(height: 8.h),
description.toText12(height: 1.2.h, color: AppColors.textColorLight, fontWeight: FontWeight.w500)
description.toText12(height: 1.2.h, color: AppColors.textColorLight, isBold: true)
],
),
);
@ -1191,7 +1191,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
getTitle(AppointmentViaRegionViewmodel data) {
if (data.selectedRegionId == null) {
return LocaleKeys.selectRegion.tr(context: context).toText20(weight: FontWeight.w600);
return LocaleKeys.selectRegion.tr(context: context).toText20(isBold: true);
} else {
return Transform.flip(
flipX: data.isArabic ? true : false,
@ -1219,7 +1219,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.youHaveExistingTreatmentPlan.tr(context: context).toText14(weight: FontWeight.w500),
LocaleKeys.youHaveExistingTreatmentPlan.tr(context: context).toText14(isBold: true),
SizedBox(height: 8.h),
Container(
width: double.infinity,
@ -1274,7 +1274,7 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
),
),
SizedBox(height: 16.h),
LocaleKeys.wouldYouLikeToContinue.tr(context: context).toText14(weight: FontWeight.w500),
LocaleKeys.wouldYouLikeToContinue.tr(context: context).toText14(isBold: true),
SizedBox(height: 16.h),
Row(
children: [

@ -88,7 +88,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
// backgroundColor: AppColors.primaryRedColor,
// borderColor: AppColors.primaryRedColor,
// borderRadius: 12.r,
// fontWeight: FontWeight.w500),
// isBold: true),
// ),
child: SingleChildScrollView(
controller: _scrollController,
@ -197,7 +197,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.textColor.withOpacity(0.2),
textColor: bookAppointmentsVM.isSortByClinic ? AppColors.primaryRedColor : AppColors.blackColor,
fontSize: 12,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,
@ -212,7 +212,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
borderColor: bookAppointmentsVM.isSortByClinic ? AppColors.textColor.withOpacity(0.2) : AppColors.primaryRedColor,
textColor: bookAppointmentsVM.isSortByClinic ? AppColors.blackColor : AppColors.primaryRedColor,
fontSize: 12,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,
@ -229,7 +229,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
children: [
LocaleKeys.nearestAppo.tr(context: context).toText13(isBold: true),
SizedBox(height: 4.h),
LocaleKeys.viewNearestAppos.tr(context: context).toText11(color: AppColors.textColorLight, weight: FontWeight.w500),
LocaleKeys.viewNearestAppos.tr(context: context).toText11(color: AppColors.textColorLight, isBold: true),
],
),
const Spacer(),
@ -303,7 +303,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
borderColor: AppColors.greyColor,
textColor: AppColors.blackColor,
fontSize: 10,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 8,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 30.h,
@ -317,7 +317,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
bookAppointmentsVM.isSortByClinic
? (bookAppointmentsVM.doctorsListGrouped[index].first.clinicName ?? 'Unknown')
: (bookAppointmentsVM.doctorsListGrouped[index].first.projectName ?? 'Unknown'),
style: TextStyle(fontSize: 16.h, fontWeight: FontWeight.w600),
style: TextStyle(fontSize: 16.h, fontWeight: FontWeight.w600,),
overflow: TextOverflow.ellipsis,
),
// Expanded content - list of doctors in this group

@ -55,7 +55,7 @@ class SelectLivecareClinicPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.immediateService.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.noNeedToWaitGetMedicalConsultation.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.noNeedToWaitGetMedicalConsultation.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -71,7 +71,7 @@ class SelectLivecareClinicPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.noVisitRequired.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.livecarePoint5.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.livecarePoint5.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -87,7 +87,7 @@ class SelectLivecareClinicPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.doctorWillContact.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.specialisedDoctorWillContactYou.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.specialisedDoctorWillContactYou.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -103,7 +103,7 @@ class SelectLivecareClinicPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.freeMedicineDelivery.tr(context: context).toText18(color: AppColors.textColor, isBold: true),
LocaleKeys.offersFreeMedicineDelivery.tr(context: context).toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
LocaleKeys.offersFreeMedicineDelivery.tr(context: context).toText14(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -152,7 +152,7 @@ class SelectLivecareClinicPage extends StatelessWidget {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10.r,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,
@ -171,7 +171,7 @@ class SelectLivecareClinicPage extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10.r,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,

@ -98,7 +98,7 @@ class WaitingAppointmentInfo extends StatelessWidget {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,

@ -111,7 +111,7 @@ class WaitingAppointmentOnlineCheckinSheet extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
title.toText16(isBold: true, color: AppColors.textColor),
subTitle.toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor),
subTitle.toText12(isBold: true, color: AppColors.greyTextColor),
],
),
),

@ -244,7 +244,7 @@ class _WaitingAppointmentPaymentPageState extends State<WaitingAppointmentPaymen
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
LocaleKeys.insuranceExpiredOrInactive.tr(context: context).toText14(color: AppColors.primaryRedColor, weight: FontWeight.w500)
LocaleKeys.insuranceExpiredOrInactive.tr(context: context).toText14(color: AppColors.primaryRedColor, isBold: true)
.paddingSymmetrical(24.h, 0.h),
CustomButton(
text: LocaleKeys.updateInsurance.tr(context: context),
@ -259,7 +259,7 @@ class _WaitingAppointmentPaymentPageState extends State<WaitingAppointmentPaymen
borderColor: AppColors.secondaryLightRedBorderColor,
textColor: AppColors.whiteColor,
fontSize: 10.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 8,
padding: EdgeInsets.fromLTRB(15, 0, 15, 0),
height: 30.h,

@ -82,7 +82,7 @@ class _AppointmentCalendarState extends State<AppointmentCalendar> {
// Row(
// crossAxisAlignment: CrossAxisAlignment.center,
// children: [
// "Pick a Date".toText20(weight: FontWeight.w600).expanded,
// "Pick a Date".toText20(isBold: true).expanded,
// Utils.buildSvgWithAssets(icon: AppAssets.close_bottom_sheet_icon, iconColor: Color(0xff2B353E)).onPress(() {
// Navigator.of(context).pop();
// }),
@ -147,7 +147,7 @@ class _AppointmentCalendarState extends State<AppointmentCalendar> {
SizedBox(height: 10.h),
Transform.translate(
offset: const Offset(0.0, -10.0),
child: selectedDateDisplay.toText16(weight: FontWeight.w500, isEnglishOnly: true),
child: selectedDateDisplay.toText16(isBold: true, isEnglishOnly: true),
),
//TODO: Add Next Day Span here
dayEvents.isNotEmpty
@ -269,7 +269,7 @@ class _AppointmentCalendarState extends State<AppointmentCalendar> {
borderColor: AppColors.primaryRedColor,
textColor: Colors.white,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 50.h,
@ -349,14 +349,14 @@ class TimeSlotChip extends StatelessWidget {
? Container(
padding: EdgeInsets.symmetric(horizontal: 14.h, vertical: 8.h),
decoration: ShapeDecoration(
color: isSelected ? AppColors.warningColorYellow : AppColors.textColor,
color: isSelected ? AppColors.warningColorYellow : AppColors.whiteColor,
shape: SmoothRectangleBorder(
borderRadius: BorderRadius.circular(8.h),
smoothness: 1,
side: BorderSide(color: isSelected ? AppColors.warningColorYellow : AppColors.borderOnlyColor.withOpacity(0.2), width: 1),
),
),
child: label.toText12(color: isSelected ? AppColors.whiteColor : Colors.black87, fontWeight: FontWeight.w500, isEnglishOnly: true),
child: label.toText12(color: isSelected ? AppColors.whiteColor : Colors.black87, isBold: true, isEnglishOnly: true),
)
: Container(
padding: EdgeInsets.symmetric(horizontal: 14.h, vertical: 8.h),
@ -368,7 +368,7 @@ class TimeSlotChip extends StatelessWidget {
side: BorderSide(color: isSelected ? AppColors.primaryRedColor : AppColors.borderOnlyColor.withOpacity(0.2), width: 1),
),
),
child: label.toText12(color: isSelected ? AppColors.primaryRedColor : AppColors.textColor, fontWeight: FontWeight.w500, isEnglishOnly: true),
child: label.toText12(color: isSelected ? AppColors.primaryRedColor : AppColors.textColor, isBold: true, isEnglishOnly: true),
),
);
}

@ -118,7 +118,7 @@ class DoctorCard extends StatelessWidget {
: doctorsListResponseModel.speciality!.first) : ""
: "")
.toString()
.toText12(fontWeight: FontWeight.w500, color: AppColors.textColor, maxLine: 2, isEnglishOnly: true)
.toText12(isBold: true, color: AppColors.textColor, maxLine: 2, isEnglishOnly: true)
.toShimmer2(isShow: isLoading),
),
SizedBox(width: 6.w),
@ -262,7 +262,7 @@ class DoctorCard extends StatelessWidget {
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10.r,
padding: EdgeInsets.fromLTRB(10.h, 0, 10.h, 0),
height: 40.h,

@ -151,12 +151,12 @@ class DoctorRatingDialog extends StatelessWidget {
child: Row(
children: [
NumberFormat.decimalPattern().format(totalReviews).toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: averageRating == 0 || averageRating == 0.0 ? AppColors.textColor : AppColors.whiteColor,
isEnglishOnly: true
),
' ${LocaleKeys.reviews.tr(context: context)}'.toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: averageRating == 0 || averageRating == 0.0 ? AppColors.textColor : AppColors.whiteColor,
),
],
@ -165,7 +165,7 @@ class DoctorRatingDialog extends StatelessWidget {
// '${NumberFormat.decimalPattern().format(totalReviews)} ${LocaleKeys.reviews.tr(context: context)}',
// style: TextStyle(
// fontSize: 12.f,
// fontWeight: FontWeight.w500,
// isBold: true,
// color: averageRating == 0 || averageRating == 0.0 ? AppColors.textColor : AppColors.whiteColor,
// ),
// ),

@ -84,11 +84,11 @@
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// LocaleKeys.city.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
// LocaleKeys.city.tr().toText16(color: AppColors.textColor, isBold: true),
// (appState.isArabic()
// ? (bloodDonationVM.selectedCity?.descriptionN ?? LocaleKeys.select.tr())
// : bloodDonationVM.selectedCity?.description ?? LocaleKeys.select.tr(context: context))
// .toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
// .toText14(color: AppColors.greyTextColor, isBold: true),
// ],
// ),
// ],
@ -112,11 +112,11 @@
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// LocaleKeys.gender.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
// LocaleKeys.gender.tr().toText16(color: AppColors.textColor, isBold: true),
// (appState.isArabic()
// ? (bloodDonationVM.selectedGender?.typeAr ?? LocaleKeys.select.tr())
// : bloodDonationVM.selectedGender?.type ?? LocaleKeys.select.tr(context: context))
// .toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
// .toText14(color: AppColors.greyTextColor, isBold: true),
// ],
// ),
// ],
@ -143,12 +143,12 @@
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// LocaleKeys.bloodType.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
// // bloodDonationVM.selectedBloodType?.toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
// LocaleKeys.bloodType.tr().toText16(color: AppColors.textColor, isBold: true),
// // bloodDonationVM.selectedBloodType?.toText14(color: AppColors.greyTextColor, isBold: true),
// (appState.isArabic()
// ? (bloodDonationVM.selectedBloodType ?? LocaleKeys.select.tr())
// : bloodDonationVM.selectedBloodType ?? LocaleKeys.select.tr(context: context))
// .toText14(color: AppColors.greyTextColor, weight: FontWeight.w500)
// .toText14(color: AppColors.greyTextColor, isBold: true)
// ],
// ),
// ],
@ -307,7 +307,7 @@ class _MyChildVaccinePageState extends State<MyChildVaccinePage> {
"${children[index]['name']} (${children[index]['gender']})",
style: TextStyle(
color: isSelected ? AppColors.primaryRedColor : AppColors.textColor,
fontWeight: isSelected ? FontWeight.w600 : FontWeight.w500,
fontWeight: isSelected ? FontWeight.w600 : FontWeight.w600,
fontSize: 14.f,
),
),
@ -343,7 +343,7 @@ class _MyChildVaccinePageState extends State<MyChildVaccinePage> {
children: [
Utils.buildSvgWithAssets(icon: AppAssets.calendar, width: 16.h, height: 16.h, iconColor: AppColors.textColor),
SizedBox(width: 8.w),
"Due Date : ${data['dueDate']}".toText12(fontWeight: FontWeight.w500, color: AppColors.textColor),
"Due Date : ${data['dueDate']}".toText12(isBold: true, color: AppColors.textColor),
],
),
),
@ -354,7 +354,7 @@ class _MyChildVaccinePageState extends State<MyChildVaccinePage> {
children: [
Utils.buildSvgWithAssets(icon: AppAssets.tickIcon, width: 20.h, height: 20.h, iconColor: Colors.green),
SizedBox(width: 12.w),
vaccine.toString().toText14(weight: FontWeight.w500, color: AppColors.textColor),
vaccine.toString().toText14(isBold: true, color: AppColors.textColor),
],
),
)),

@ -105,7 +105,7 @@ class _CmcOrderDetailPageState extends State<CmcOrderDetailPage> {
child: (isLoading ? "Processing" : order.statusText ?? '')
.toText12(
color: statusColor,
fontWeight: FontWeight.w600,
isBold: true,
)
.toShimmer2(isShow: isLoading),
),
@ -113,7 +113,7 @@ class _CmcOrderDetailPageState extends State<CmcOrderDetailPage> {
(isLoading ? "Jan 15, 2024" : _formatDate(order.created))
.toText12(
color: AppColors.textColorLight,
fontWeight: FontWeight.w500,
isBold: true,
)
.toShimmer2(isShow: isLoading),
],
@ -127,7 +127,7 @@ class _CmcOrderDetailPageState extends State<CmcOrderDetailPage> {
if (!isLoading) ...[
LocaleKeys.requestID.tr(context: context).toText14(
color: AppColors.textColorLight,
weight: FontWeight.w500,
weight: FontWeight.w600,
),
SizedBox(width: 4.w),
],
@ -171,7 +171,7 @@ class _CmcOrderDetailPageState extends State<CmcOrderDetailPage> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 14.f,
fontWeight: FontWeight.w600,
isBold: true,
borderRadius: 10.r,
height: 44.h,
).toShimmer2(isShow: isLoading),

@ -356,7 +356,7 @@ class _CmcSelectionReviewPageState extends State<CmcSelectionReviewPage> {
children: [
LocaleKeys.hereIsYourRequestNumber.tr(context: context).toText14(
color: AppColors.textColorLight,
weight: FontWeight.w500,
weight: FontWeight.w600,
),
SizedBox(width: 4.w),
("$requestId").toText16(isBold: true),

@ -112,14 +112,14 @@ class _ComprehensiveCheckupPageState extends State<ComprehensiveCheckupPage> {
),
child: statusDisp.toText12(
color: statusColor,
fontWeight: FontWeight.w600,
isBold: true,
),
),
SizedBox(width: 8.w),
if (order.created != null)
DateFormat('MMM dd, yyyy').format(DateTime.parse(order.created!)).toText12(
color: AppColors.textColorLight,
fontWeight: FontWeight.w500,
isBold: true,
),
],
),
@ -129,7 +129,7 @@ class _ComprehensiveCheckupPageState extends State<ComprehensiveCheckupPage> {
// Request ID
Row(
children: [
LocaleKeys.requestID.tr(context: context).toText14(color: AppColors.textColorLight, weight: FontWeight.w500),
LocaleKeys.requestID.tr(context: context).toText14(color: AppColors.textColorLight, isBold: true),
SizedBox(width: 4.w),
"${order.iD ?? '-'}".toText16(isBold: true),
],
@ -182,7 +182,7 @@ class _ComprehensiveCheckupPageState extends State<ComprehensiveCheckupPage> {
Expanded(
child: LocaleKeys.pendingOrderWait.tr(context: context).toText12(
color: AppColors.infoBannerTextColor,
fontWeight: FontWeight.w500,
isBold: true,
),
),
],
@ -200,7 +200,7 @@ class _ComprehensiveCheckupPageState extends State<ComprehensiveCheckupPage> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 14.f,
fontWeight: FontWeight.w600,
isBold: true,
borderRadius: 10.r,
height: 44.h,
),

@ -85,7 +85,7 @@ class CmcHospitalBottomSheetBody extends StatelessWidget {
? _buildLoadingShimmer()
: hmgServicesViewModel.filteredHospitalsList.isEmpty
? Center(
child: LocaleKeys.noHospitalsFound.tr(context: context).toText16(weight: FontWeight.w500, color: AppColors.greyTextColor),
child: LocaleKeys.noHospitalsFound.tr(context: context).toText16(isBold: true, color: AppColors.greyTextColor),
)
: ListView.separated(
itemCount: hmgServicesViewModel.filteredHospitalsList.length,

@ -126,7 +126,7 @@ class ContactUs extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
title.toText16(isBold: true, color: AppColors.textColor),
subTitle.toText12(fontWeight: FontWeight.w500, color: AppColors.greyTextColor),
subTitle.toText12(isBold: true, color: AppColors.greyTextColor),
],
),
),

@ -125,7 +125,7 @@ class FeedbackPage extends StatelessWidget {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,
@ -146,7 +146,7 @@ class FeedbackPage extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.likeToHear.tr().toText14(weight: FontWeight.w500),
LocaleKeys.likeToHear.tr().toText14(isBold: true),
SizedBox(height: 16.h),
Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
@ -167,9 +167,9 @@ class FeedbackPage extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
LocaleKeys.feedbackType.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.feedbackType.tr().toText16(color: AppColors.textColor, isBold: true),
(getIt.get<AppState>().isArabic() ? contactUsViewModel.selectedFeedbackType.nameAR : contactUsViewModel.selectedFeedbackType.nameEN)
.toText14(color: AppColors.greyTextColor, weight: FontWeight.w500),
.toText14(color: AppColors.greyTextColor, isBold: true),
],
),
],
@ -197,7 +197,7 @@ class FeedbackPage extends StatelessWidget {
getIt.get<AppState>().isArabic() ? contactUsViewModel.feedbackTypeList[index].nameAR : contactUsViewModel.feedbackTypeList[index].nameEN,
style: TextStyle(
fontSize: 16.h,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
),
),
value: contactUsViewModel.feedbackTypeList[index],
@ -352,7 +352,7 @@ class FeedbackPage extends StatelessWidget {
borderColor: AppColors.secondaryLightRedColor,
textColor: AppColors.primaryRedColor,
fontSize: 14.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 10.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 40.h,
@ -478,7 +478,7 @@ class FeedbackPage extends StatelessWidget {
.toText16(weight: FontWeight.bold, fontFamily: Utils.isArabicText(contactUsViewModel.cocItemsList[index].cOCTitle ?? "") ? "GESSTwo" : "Poppins"),
SizedBox(height: 8.h),
"${contactUsViewModel.cocItemsList[index].detail}".toText14(
weight: FontWeight.w500,
weight: FontWeight.w600,
color: AppColors.textColorLight,
fontFamily: Utils.isArabicText(contactUsViewModel.cocItemsList[index].detail ?? "") ? "GESSTwo" : "Poppins"),
],

@ -59,7 +59,7 @@ class FindUsPage extends StatelessWidget {
children: [
LocaleKeys.sortByLocation.tr(context: context).toText14(isBold: true),
SizedBox(height: 4.h),
LocaleKeys.sortByNearestLocation.tr(context: context).toText11(color: AppColors.textColorLight, weight: FontWeight.w500),
LocaleKeys.sortByNearestLocation.tr(context: context).toText11(color: AppColors.textColorLight, isBold: true),
],
),
const Spacer(),

@ -239,7 +239,7 @@ class LiveChatPage extends StatelessWidget {
borderColor: contactUsVM.selectedLiveChatProjectIndex == -1 ? AppColors.greyColor : AppColors.primaryRedColor,
textColor: Colors.white,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50.h,

@ -123,7 +123,7 @@ class FindUsItemCard extends StatelessWidget {
textColor: AppColors.blackColor,
borderWidth: 1.h,
fontSize: (isFoldable || isTablet) ? 12.f : 14.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 40.h,

@ -102,7 +102,7 @@ class _Covid19LandingPageState extends State<Covid19LandingPage> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
isBold: true,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
height: 50.h,
@ -259,7 +259,7 @@ class _Covid19LandingPageState extends State<Covid19LandingPage> {
: AppColors.greyTextColor.withValues(alpha: 0.3),
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w600,
isBold: true,
borderRadius: 12.r,
height: 56.h,
),

@ -71,7 +71,7 @@ class _Covid19QuestionnaireState extends State<Covid19Questionnaire> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w600,
isBold: true,
borderRadius: 12.r,
height: 56.h,
)),
@ -93,7 +93,7 @@ class _Covid19QuestionnaireState extends State<Covid19Questionnaire> {
children: [
"Please answer below questionnaire:".toText14(
color: AppColors.textColor,
weight: FontWeight.w500,
weight: FontWeight.w600,
),
SizedBox(height: 20.h),
// Question list

@ -178,7 +178,7 @@ class _CovidPaymentScreenState extends State<CovidPaymentScreen> {
// borderColor: AppColors.primaryRedColor,
// textColor: AppColors.whiteColor,
// fontSize: 16.f,
// fontWeight: FontWeight.w500,
// isBold: true,
// borderRadius: 12.r,
// padding: EdgeInsets.symmetric(horizontal: 10.w),
// icon: AppAssets.add_icon,

@ -279,7 +279,7 @@ class _CovidReviewScreenState extends State<CovidReviewScreen> {
borderColor: AppColors.primaryRedColor,
textColor: AppColors.whiteColor,
fontSize: 16.f,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w600,
borderRadius: 12.r,
padding: EdgeInsets.symmetric(horizontal: 10.w),
// icon: AppAssets.add_icon,
@ -305,7 +305,7 @@ class _CovidReviewScreenState extends State<CovidReviewScreen> {
"Please select the procedure:".toText14(
color: AppColors.textColor,
weight: FontWeight.w500,
weight: FontWeight.w600,
),
SizedBox(height: 16.h),

@ -75,7 +75,7 @@ class _SearchResultPageState extends State<SearchResultPage> {
// style: TextStyle(
// color: Colors.white,
// fontSize: 12,
// fontWeight: FontWeight.w500,
// isBold: true,
// ),
),
),

@ -227,7 +227,7 @@ class _NewReferralPageState extends State<NewReferralPage> {
children: [
LocaleKeys.hereIsYourReferralNumber.tr(context: context).toText14(
color: AppColors.textColorLight,
weight: FontWeight.w500,
weight: FontWeight.w600,
),
SizedBox(width: 4.w),
("$requestId").toText16(isBold: true),

@ -183,7 +183,7 @@ class _OtherDetailsStepState extends State<OtherDetailsStep> {
color: Colors.black,
weight: FontWeight.w600,
),
// style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600),
// style: TextStyle(fontSize: 14, isBold: true),
//),
),
],

@ -139,7 +139,7 @@ class RrtMapScreen extends StatelessWidget {
color: AppColors.textColor,
),
LocaleKeys.pleaseSelectTheLocation.tr().toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: AppColors.greyTextColor,
)
],
@ -370,7 +370,7 @@ class RrtMapScreen extends StatelessWidget {
children: [
title.toText12(
color: AppColors.greyTextColor,
fontWeight: FontWeight.w500,
isBold: true,
),
SizedBox(height: 2.h),
],
@ -378,7 +378,7 @@ class RrtMapScreen extends StatelessWidget {
),
subTitle.toText14(
color: AppColors.textColor,
weight: FontWeight.w500,
weight: FontWeight.w600,
),
],
),
@ -423,7 +423,7 @@ class RrtMapScreen extends StatelessWidget {
height: 18.h, width: 18.h),
SizedBox(width: 4.h,),
LocaleKeys.amountPaidAtHospital.tr().toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: AppColors.greyTextColor,
),
],
@ -437,7 +437,7 @@ class RrtMapScreen extends StatelessWidget {
.getTotalPrice() ??
0))
.toText24(
fontWeight: FontWeight.w600,
isBold: true,
color: AppColors.textColor,
letterSpacing: -2),
AppColors.blackColor,

@ -79,7 +79,7 @@ class RrtRequestTypeSelect extends StatelessWidget {
),
Utils.getPaymentAmountWithSymbol(
(Utils.formatNumberToInternationalFormat(context.read<EmergencyServicesViewModel>().selectedRRTProcedure?.patientShare ?? 0))
.toText24(fontWeight: FontWeight.w600, color: AppColors.textColor, letterSpacing: -2),
.toText24(isBold: true, color: AppColors.textColor, letterSpacing: -2),
AppColors.blackColor,
17.h)
],
@ -101,7 +101,7 @@ class RrtRequestTypeSelect extends StatelessWidget {
Row(
children: [
LocaleKeys.vat15.tr(context: context).toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: AppColors.greyTextColor,
),
"${emergencyServicesVM.selectedRRTProcedure?.patientTaxAmount})".toText14(
@ -131,7 +131,7 @@ class RrtRequestTypeSelect extends StatelessWidget {
),
Utils.getPaymentAmountWithSymbol(
(Utils.formatNumberToInternationalFormat(context.read<EmergencyServicesViewModel>().selectedRRTProcedure?.patientShareWithTax ?? 0))
.toText24(fontWeight: FontWeight.w600, color: AppColors.textColor, letterSpacing: -2),
.toText24(isBold: true, color: AppColors.textColor, letterSpacing: -2),
AppColors.blackColor,
17.h),
],
@ -177,7 +177,7 @@ class RrtRequestTypeSelect extends StatelessWidget {
final indexOfSelectedItem = selectedProcedure != null ? procedureList.indexOf(selectedProcedure) : -1;
return RadioListTile<int>(
title: (procedure.procedureName ?? "").toText16(color: AppColors.textColor, weight: FontWeight.w500),
title: (procedure.procedureName ?? "").toText16(color: AppColors.textColor, isBold: true),
value: index,
fillColor: WidgetStateProperty.resolveWith((states) {
if (states.contains(WidgetState.selected)) {
@ -243,8 +243,8 @@ class RrtRequestTypeSelect extends StatelessWidget {
spacing: 4.w,
children: [
SizedBox.shrink(),
LocaleKeys.agreeTo.tr().toText16(color: AppColors.textColor, weight: FontWeight.w500),
LocaleKeys.termsConditoins.tr().toText16(color: AppColors.errorColor, isUnderLine: true, weight: FontWeight.w500).onPress(() {
LocaleKeys.agreeTo.tr().toText16(color: AppColors.textColor, isBold: true),
LocaleKeys.termsConditoins.tr().toText16(color: AppColors.errorColor, isUnderLine: true, isBold: true).onPress(() {
emergencyServicesVM.getTermsAndConditions();
}),
],

@ -161,7 +161,7 @@ class CallAmbulancePage extends StatelessWidget {
color: AppColors.textColor,
),
LocaleKeys.pleaseSelectDetailsOfPickup.tr(context: context).toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: AppColors.greyTextColor,
)
],
@ -384,7 +384,7 @@ class CallAmbulancePage extends StatelessWidget {
children: [
title.toText12(
color: AppColors.greyTextColor,
fontWeight: FontWeight.w500,
isBold: true,
),
SizedBox(height: 2.h),
],
@ -392,7 +392,7 @@ class CallAmbulancePage extends StatelessWidget {
),
subTitle.toText14(
color: AppColors.textColor,
weight: FontWeight.w500,
weight: FontWeight.w600,
),
],
),
@ -437,7 +437,7 @@ class CallAmbulancePage extends StatelessWidget {
width: 4.h,
),
LocaleKeys.amountPaidAtHospital.tr(context: context).toText12(
fontWeight: FontWeight.w500,
isBold: true,
color: AppColors.greyTextColor,
),
],
@ -447,7 +447,7 @@ class CallAmbulancePage extends StatelessWidget {
),
Utils.getPaymentAmountWithSymbol(
(Utils.formatNumberToInternationalFormat(context.read<EmergencyServicesViewModel>().getTotalPrice() ?? 0))
.toText24(fontWeight: FontWeight.w600, color: AppColors.textColor, letterSpacing: -2),
.toText24(isBold: true, color: AppColors.textColor, letterSpacing: -2),
AppColors.blackColor,
17.h)

@ -30,7 +30,7 @@ class RequestingServicesPage extends StatelessWidget {
Positioned(
bottom: 1,
child: LocaleKeys.submitRequest.tr(context: context)
.toText16(color: AppColors.textColor, weight: FontWeight.w500)
.toText16(color: AppColors.textColor, isBold: true)
.paddingOnly(bottom: 100.h, left: 100.h, right: 100.h))
],
),

@ -220,9 +220,9 @@ class TrackingScreen extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Dr. John Doe".toText16(color: AppColors.textColor, weight: FontWeight.w600),
"Dr. John Doe".toText16(color: AppColors.textColor, isBold: true),
SizedBox(height: 4.h),
"MBBS, MD - General Medicine".toText12(color: AppColors.greyTextColor, fontWeight: FontWeight.w500),
"MBBS, MD - General Medicine".toText12(color: AppColors.greyTextColor, isBold: true),
],
),
),
@ -268,7 +268,7 @@ class TrackingScreen extends StatelessWidget {
informationRegardingTrackingSection() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [currentStatus(), SizedBox(height: 4.h), "You will receive a call from HMG for confirmation ".toText12(color: AppColors.greyTextColor, fontWeight: FontWeight.w500)],
children: [currentStatus(), SizedBox(height: 4.h), "You will receive a call from HMG for confirmation ".toText12(color: AppColors.greyTextColor, isBold: true)],
);
}
@ -330,7 +330,7 @@ class TrackingScreen extends StatelessWidget {
);
case OrderTrackingState.ended:
return LocaleKeys.arrived.tr().toText21(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.arrived.tr().toText21(color: AppColors.textColor, isBold: true);
case OrderTrackingState.failed:
case OrderTrackingState.cancel:
return SizedBox.shrink();
@ -354,7 +354,7 @@ class TrackingScreen extends StatelessWidget {
spacing: 8.h,
children: [
Visibility(visible:(order != null || rrtOrder != null) ,child: "Req ID: ${order?.iD?? rrtOrder?.iD}".toText16(color: AppColors.textColor, weight: FontWeight.w600)),
Visibility(visible:(order != null || rrtOrder != null) ,child: "Req ID: ${order?.iD?? rrtOrder?.iD}".toText16(color: AppColors.textColor, isBold: true)),
if(order != null) ambulanceOrderData()
// else rrtOrderData()
@ -388,8 +388,8 @@ class TrackingScreen extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 4.h,
children: [
LocaleKeys.contact.tr().toText14(color: AppColors.textColor, weight: FontWeight.w600),
"0115259555".toText12(color: AppColors.primaryRedColor, fontWeight: FontWeight.w500).onPress((){
LocaleKeys.contact.tr().toText14(color: AppColors.textColor, isBold: true),
"0115259555".toText12(color: AppColors.primaryRedColor, isBold: true).onPress((){
launchUrl(
Uri.parse("tel://0115259555"),
);
@ -432,23 +432,23 @@ class TrackingScreen extends StatelessWidget {
getTitle(OrderTrackingState? state) {
if(state == null) {
return LocaleKeys.failed.tr().toText16(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.failed.tr().toText16(color: AppColors.textColor, isBold: true);
}
switch (state) {
case OrderTrackingState.waitingForCall:
return LocaleKeys.confirmationCall.tr().toText16(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.confirmationCall.tr().toText16(color: AppColors.textColor, isBold: true);
case OrderTrackingState.dispactched:
return LocaleKeys.pickupFromHome.tr().toText16(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.pickupFromHome.tr().toText16(color: AppColors.textColor, isBold: true);
case OrderTrackingState.returning:
return LocaleKeys.onTheWayToHospital.tr().toText16(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.onTheWayToHospital.tr().toText16(color: AppColors.textColor, isBold: true);
case OrderTrackingState.ended:
return LocaleKeys.arrivedAtHospital.tr().toText16(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.arrivedAtHospital.tr().toText16(color: AppColors.textColor, isBold: true);
case OrderTrackingState.failed:
return LocaleKeys.failed.tr().toText16(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.failed.tr().toText16(color: AppColors.textColor, isBold: true);
case OrderTrackingState.cancel:
return LocaleKeys.orderCancel.tr().toText16(color: AppColors.textColor, weight: FontWeight.w600);
return LocaleKeys.orderCancel.tr().toText16(color: AppColors.textColor, isBold: true);
}
}

@ -48,7 +48,7 @@ class AddressItem extends StatelessWidget {
children: [
title.toText12(
color: AppColors.greyTextColor,
fontWeight: FontWeight.w500,
isBold: true,
),
Row(
mainAxisSize: MainAxisSize.max,
@ -56,7 +56,7 @@ class AddressItem extends StatelessWidget {
Expanded(
child: address.toText14(
color: AppColors.textColor,
weight: FontWeight.w500,
weight: FontWeight.w600,
textOverflow : TextOverflow.ellipsis,
maxlines: 2
),

@ -31,7 +31,7 @@ class WayPickup extends StatelessWidget {
height: 16.h,
),
// LocaleKeys.selectDirection.tr(context: context)
// .toText16(color: AppColors.textColor, weight: FontWeight.w600),
// .toText16(color: AppColors.textColor, isBold: true),
// SizedBox(
// height: 12.h,
// ),
@ -83,7 +83,7 @@ class WayPickup extends StatelessWidget {
// children: [
// SizedBox(height: 16.h),
// LocaleKeys.selectWay.tr(context: context)
// .toText16(color: AppColors.textColor, weight: FontWeight.w600),
// .toText16(color: AppColors.textColor, isBold: true),
// SizedBox(height: 12.h),
// Row(
// mainAxisAlignment: MainAxisAlignment.start,
@ -105,7 +105,7 @@ class WayPickup extends StatelessWidget {
// fillColor: MaterialStateProperty.all(AppColors.primaryRedColor),
// ),
// LocaleKeys.oneWay.tr(context: context)
// .toText12(color: AppColors.textColor, fontWeight: FontWeight.w500)
// .toText12(color: AppColors.textColor, isBold: true)
// ],
// ).onPress(() {
// context
@ -130,7 +130,7 @@ class WayPickup extends StatelessWidget {
// fillColor: MaterialStateProperty.all(AppColors.primaryRedColor),
// ),
// LocaleKeys.twoWay.tr(context: context)
// .toText14(color: AppColors.textColor, weight: FontWeight.w500)
// .toText14(color: AppColors.textColor, isBold: true)
// ],
// ).onPress(() {
// context

@ -29,7 +29,7 @@ class PickupLocation extends StatelessWidget {
height: 16.h,
),
// LocaleKeys.selectDirection.tr(context: context)
// .toText16(color: AppColors.textColor, weight: FontWeight.w600),
// .toText16(color: AppColors.textColor, isBold: true),
// SizedBox(
// height: 12.h,
// ),
@ -83,7 +83,7 @@ class PickupLocation extends StatelessWidget {
// fillColor: MaterialStateProperty.all(AppColors.primaryRedColor),
// ),
// LocaleKeys.toHospital.tr(context: context)
// .toText14(color: AppColors.textColor, weight: FontWeight.w500)
// .toText14(color: AppColors.textColor, isBold: true)
// ],
// ).onPress(() {
// context
@ -108,7 +108,7 @@ class PickupLocation extends StatelessWidget {
// fillColor: MaterialStateProperty.all(AppColors.primaryRedColor),
// ),
// LocaleKeys.fromHospital.tr(context: context)
// .toText14(color: AppColors.textColor, weight: FontWeight.w500)
// .toText14(color: AppColors.textColor, isBold: true)
// ],
// ).onPress(() {
// context
@ -128,7 +128,7 @@ class PickupLocation extends StatelessWidget {
// children: [
// SizedBox(height: 16.h),
// LocaleKeys.selectWay.tr(context: context)
// .toText16(color: AppColors.textColor, weight: FontWeight.w600),
// .toText16(color: AppColors.textColor, isBold: true),
// SizedBox(height: 12.h),
// Row(
// mainAxisAlignment: MainAxisAlignment.start,
@ -150,7 +150,7 @@ class PickupLocation extends StatelessWidget {
// fillColor: MaterialStateProperty.all(AppColors.primaryRedColor),
// ),
// LocaleKeys.oneWay.tr(context: context)
// .toText12(color: AppColors.textColor, fontWeight: FontWeight.w500)
// .toText12(color: AppColors.textColor, isBold: true)
// ],
// ).onPress(() {
// context
@ -175,7 +175,7 @@ class PickupLocation extends StatelessWidget {
// fillColor: MaterialStateProperty.all(AppColors.primaryRedColor),
// ),
// LocaleKeys.twoWay.tr(context: context)
// .toText14(color: AppColors.textColor, weight: FontWeight.w500)
// .toText14(color: AppColors.textColor, isBold: true)
// ],
// ).onPress(() {
// context

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save