Merge branch 'master' into haroon_dev

pull/222/head
haroon amjad 22 hours ago
commit fbb758e227

@ -34,7 +34,6 @@ android {
defaultConfig { defaultConfig {
applicationId = "com.cloudsolutions.HMGPatientApp" applicationId = "com.cloudsolutions.HMGPatientApp"
// minSdk = 24 // minSdk = 24
// minSdk = 26
minSdk = 29 minSdk = 29
targetSdk = 35 targetSdk = 35
compileSdk = 36 compileSdk = 36

@ -155,6 +155,7 @@ extension SmoothContainerExtension on ShapeBorder {
BorderRadius? customBorder, BorderRadius? customBorder,
bool hasShadow = false, bool hasShadow = false,
bool hasDenseShadow = false, bool hasDenseShadow = false,
List<BoxShadow>? isCustomShadow,
}) { }) {
final bgColor = backgroundColor ?? color; final bgColor = backgroundColor ?? color;
return ShapeDecoration( return ShapeDecoration(
@ -174,7 +175,7 @@ extension SmoothContainerExtension on ShapeBorder {
offset: const Offset(1, 0), offset: const Offset(1, 0),
) )
] ]
: [], : isCustomShadow ?? [],
); );
} }
} }

@ -676,9 +676,9 @@ class MyAppointmentsViewModel extends ChangeNotifier {
Future<void> getPatientFavouriteDoctors({bool forceRefresh = false, Function(dynamic)? onSuccess, Function(String)? onError}) async { 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 data is already fetched and not forcing refresh, skip API call
// if (isFavouriteDoctorsDataFetched && !forceRefresh) { if (isFavouriteDoctorsDataFetched && !forceRefresh) {
// return; return;
// } }
isPatientFavouriteDoctorsLoading = true; isPatientFavouriteDoctorsLoading = true;
patientFavouriteDoctorsList.clear(); patientFavouriteDoctorsList.clear();

@ -205,7 +205,7 @@ class AppointmentCard extends StatelessWidget {
richText: isLoading richText: isLoading
? 'Cardiology'.toText10().toShimmer2(isShow: isLoading) ? 'Cardiology'.toText10().toShimmer2(isShow: isLoading)
: "${DateUtil.formatDateToDate(DateUtil.convertStringToDate(patientAppointmentHistoryResponseModel.appointmentDate), false)} ${DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(patientAppointmentHistoryResponseModel.appointmentDate), false)}" : "${DateUtil.formatDateToDate(DateUtil.convertStringToDate(patientAppointmentHistoryResponseModel.appointmentDate), false)} ${DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(patientAppointmentHistoryResponseModel.appointmentDate), false)}"
.toText10(isEnglishOnly: true), .toText10(isEnglishOnly: true, isBold: true),
).toShimmer2(isShow: isLoading), ).toShimmer2(isShow: isLoading),
), ),
@ -495,6 +495,10 @@ class AppointmentCard extends StatelessWidget {
} }
return CustomButton( return CustomButton(
borderSide: BorderSide(
color: AppColors.textColor,
width: 1.2,
),
text: LocaleKeys.rebookSameDoctor.tr(context: context), text: LocaleKeys.rebookSameDoctor.tr(context: context),
onPressed: () => openDoctorScheduleCalendar(context), onPressed: () => openDoctorScheduleCalendar(context),
backgroundColor: AppColors.transparent, backgroundColor: AppColors.transparent,

@ -8,6 +8,7 @@ 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/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart'; import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.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/authentication/authentication_view_model.dart'; import 'package:hmg_patient_app_new/features/authentication/authentication_view_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/presentation/authentication/login.dart'; import 'package:hmg_patient_app_new/presentation/authentication/login.dart';
@ -89,15 +90,11 @@ class _SavedLogin extends State<SavedLogin> {
: SizedBox(), : SizedBox(),
SizedBox(height: 24.h), SizedBox(height: 24.h),
Container( Container(
padding: EdgeInsets.all(16.h), padding: EdgeInsets.all(16.h),
decoration: BoxDecoration( decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 20.h, hasShadow: false, isCustomShadow: [
color: AppColors.whiteColor,
border: Border.all(color: AppColors.whiteColor),
borderRadius: BorderRadius.circular(24.h),
boxShadow: [
BoxShadow(color: Color(0x0D000000), blurRadius: 16.h, offset: Offset(0, 0), spreadRadius: 5.h), BoxShadow(color: Color(0x0D000000), blurRadius: 16.h, offset: Offset(0, 0), spreadRadius: 5.h),
], ]),
),
child: Column( child: Column(
children: [ children: [
// Last login info - show WhatsApp only if isOther AND loginType is SMS // Last login info - show WhatsApp only if isOther AND loginType is SMS

@ -273,7 +273,7 @@ class _LandingPageState extends State<LandingPage> {
Consumer<TodoSectionViewModel>(builder: (context, todoSectionVM, child) { Consumer<TodoSectionViewModel>(builder: (context, todoSectionVM, child) {
return Row( return Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
spacing: 18.h, // spacing: 18.h,
children: [ children: [
Stack(clipBehavior: Clip.none, children: [ Stack(clipBehavior: Clip.none, children: [
if (appState.isAuthenticated) if (appState.isAuthenticated)
@ -293,7 +293,7 @@ class _LandingPageState extends State<LandingPage> {
}), }),
(appState.isAuthenticated && (int.parse(todoSectionVM.notificationsCount ?? "0") > 0)) (appState.isAuthenticated && (int.parse(todoSectionVM.notificationsCount ?? "0") > 0))
? Positioned( ? Positioned(
right: appState.isArabic() ? 8.w : -8.w, // right: appState.isArabic() ? 8.w : -8.w,
top: -8.h, top: -8.h,
// left: 4.h, // left: 4.h,
// bottom: 4.h, // bottom: 4.h,
@ -319,6 +319,7 @@ class _LandingPageState extends State<LandingPage> {
) )
: SizedBox.shrink(), : SizedBox.shrink(),
]), ]),
SizedBox(width: 24.w,),
Utils.buildSvgWithAssets(icon: AppAssets.location, height: 24.h, width: 24.w).onPress(() { Utils.buildSvgWithAssets(icon: AppAssets.location, height: 24.h, width: 24.w).onPress(() {
// openIndoorNavigationBottomSheet(context); // openIndoorNavigationBottomSheet(context);
showCommonBottomSheetWithoutHeight( showCommonBottomSheetWithoutHeight(
@ -621,7 +622,7 @@ class _LandingPageState extends State<LandingPage> {
LocaleKeys.quickLinks.tr(context: context).toText16(isBold: true), LocaleKeys.quickLinks.tr(context: context).toText16(isBold: true),
Row( Row(
children: [ children: [
LocaleKeys.viewMedicalFile.tr(context: context).toText12(color: AppColors.primaryRedColor, isBold: true), LocaleKeys.viewMedicalFile.tr(context: context).toText14(color: AppColors.primaryRedColor, isBold: true),
SizedBox(width: 2.h), SizedBox(width: 2.h),
Icon(Icons.arrow_forward_ios, color: AppColors.primaryRedColor, size: 14.h), Icon(Icons.arrow_forward_ios, color: AppColors.primaryRedColor, size: 14.h),
], ],

File diff suppressed because one or more lines are too long

@ -45,11 +45,14 @@ class _LabAiAnalysisDetailedPageState extends State<LabAiAnalysisDetailedPage> {
if (analysis.summary != null && analysis.summary!.isNotEmpty) { if (analysis.summary != null && analysis.summary!.isNotEmpty) {
expandableItems.add( expandableItems.add(
ExpandableListItem( ExpandableListItem(
backgroundColor: Colors.transparent,
expandedBackgroundColor:Colors.transparent ,
title: LocaleKeys.summary.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor), title: LocaleKeys.summary.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor),
initiallyExpanded: true, initiallyExpanded: true,
children: [ children: [
SizedBox(height: 10.h), SizedBox(height: 10.h),
Container( Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 12.r, side: BorderSide(width: 1, color: Color(0xFF0B85F7))), decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 12.r, side: BorderSide(width: 1, color: Color(0xFF0B85F7))),
padding: EdgeInsets.all(16.r), padding: EdgeInsets.all(16.r),
child: (analysis.summary ?? "").toText14(color: AppColors.textColorLight, height: 1.5, weight: FontWeight.w400), child: (analysis.summary ?? "").toText14(color: AppColors.textColorLight, height: 1.5, weight: FontWeight.w400),
@ -64,6 +67,9 @@ class _LabAiAnalysisDetailedPageState extends State<LabAiAnalysisDetailedPage> {
if (analysis.aiGeneratedAttributes != null && analysis.aiGeneratedAttributes!.isNotEmpty) { if (analysis.aiGeneratedAttributes != null && analysis.aiGeneratedAttributes!.isNotEmpty) {
expandableItems.add( expandableItems.add(
ExpandableListItem( ExpandableListItem(
backgroundColor: Colors.transparent,
expandedBackgroundColor:Colors.transparent ,
title: LocaleKeys.labResults.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor), title: LocaleKeys.labResults.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor),
children: [ children: [
SizedBox(height: 10.h), SizedBox(height: 10.h),
@ -84,6 +90,8 @@ class _LabAiAnalysisDetailedPageState extends State<LabAiAnalysisDetailedPage> {
if (analysis.aiPredictions != null && analysis.aiPredictions!.isNotEmpty) { if (analysis.aiPredictions != null && analysis.aiPredictions!.isNotEmpty) {
expandableItems.add( expandableItems.add(
ExpandableListItem( ExpandableListItem(
backgroundColor: Colors.transparent,
expandedBackgroundColor:Colors.transparent ,
title: LocaleKeys.prediction.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor), title: LocaleKeys.prediction.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor),
children: [ children: [
SizedBox(height: 10.h), SizedBox(height: 10.h),
@ -105,6 +113,8 @@ class _LabAiAnalysisDetailedPageState extends State<LabAiAnalysisDetailedPage> {
if (analysis.aiRecommendations != null && analysis.aiRecommendations!.isNotEmpty) { if (analysis.aiRecommendations != null && analysis.aiRecommendations!.isNotEmpty) {
expandableItems.add( expandableItems.add(
ExpandableListItem( ExpandableListItem(
backgroundColor: Colors.transparent,
expandedBackgroundColor:Colors.transparent ,
title: LocaleKeys.suggestions.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor), title: LocaleKeys.suggestions.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor),
children: [ children: [
SizedBox(height: 10.h), SizedBox(height: 10.h),
@ -152,6 +162,8 @@ class _LabAiAnalysisDetailedPageState extends State<LabAiAnalysisDetailedPage> {
if (analysis.riskFactors != null && analysis.riskFactors!.isNotEmpty) { if (analysis.riskFactors != null && analysis.riskFactors!.isNotEmpty) {
expandableItems.add( expandableItems.add(
ExpandableListItem( ExpandableListItem(
backgroundColor: Colors.transparent,
expandedBackgroundColor:Colors.transparent ,
title: LocaleKeys.riskFactors.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor), title: LocaleKeys.riskFactors.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor),
children: [ children: [
SizedBox(height: 10.h), SizedBox(height: 10.h),
@ -221,6 +233,8 @@ class _LabAiAnalysisDetailedPageState extends State<LabAiAnalysisDetailedPage> {
if (analysis.prevention != null && analysis.prevention!.isNotEmpty) { if (analysis.prevention != null && analysis.prevention!.isNotEmpty) {
expandableItems.add( expandableItems.add(
ExpandableListItem( ExpandableListItem(
backgroundColor: Colors.transparent,
expandedBackgroundColor:Colors.transparent ,
title: LocaleKeys.prevention.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor), title: LocaleKeys.prevention.tr(context: context).toText18(weight: FontWeight.w700, color: AppColors.blackColor),
children: [ children: [
SizedBox(height: 10.h), SizedBox(height: 10.h),
@ -308,10 +322,11 @@ class _LabAiAnalysisDetailedPageState extends State<LabAiAnalysisDetailedPage> {
else else
CustomExpandableList( CustomExpandableList(
expansionMode: ExpansionMode.exactlyOne, expansionMode: ExpansionMode.exactlyOne,
dividerColor: Color(0xff2b353e1a), dividerColor: AppColors.dividerColor,
itemPadding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 14.h), itemPadding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 14.h),
items: expandableItems, items: expandableItems,
theme: ExpandableListTheme.custom( theme: ExpandableListTheme.custom(
defaultTrailingIcon: Utils.buildSvgWithAssets(icon: AppAssets.arrow_down, height: 22.h, width: 22.w, iconColor: AppColors.textColor), defaultTrailingIcon: Utils.buildSvgWithAssets(icon: AppAssets.arrow_down, height: 22.h, width: 22.w, iconColor: AppColors.textColor),
), ),
).paddingSymmetrical(16.w, 0.0), ).paddingSymmetrical(16.w, 0.0),

@ -49,48 +49,38 @@ class LabOrderResultItem extends StatelessWidget {
SizedBox(height: 12.h), SizedBox(height: 12.h),
Directionality( Directionality(
textDirection: ui.TextDirection.ltr, textDirection: ui.TextDirection.ltr,
child: Row( child: Column(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Flexible( Text(
"${tests?.resultValue} ${tests?.uOM}",
style: TextStyle(
fontSize: 24.f,
fontWeight: FontWeight.w600,
fontFamily: 'Poppins',
color: tests!.checkIfGraphShouldBeDisplayed()
? context.read<LabViewModel>().getColor(
tests?.calculatedResultFlag ?? "",
)
: Colors.grey.shade700,
letterSpacing: -1,
),
),
// SizedBox(
// height: 2.h,
// ),
Visibility(
visible: tests?.referanceRange != null,
child: Text( child: Text(
"${tests?.resultValue} ${tests?.uOM}", "(${LocaleKeys.referenceRange.tr(context: context)}: ${tests?.referanceRange})",
style: TextStyle( style: TextStyle(
fontSize: 24.f, fontSize: 12.f,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontFamily: 'Poppins', fontFamily: 'Poppins',
color: tests!.checkIfGraphShouldBeDisplayed() color: AppColors.greyTextColor,
? context.read<LabViewModel>().getColor(
tests?.calculatedResultFlag ?? "",
)
: Colors.grey.shade700,
letterSpacing: -2,
),
),
),
SizedBox(
width: 4.h,
),
Visibility(
// visible: tests?.checkIfGraphShouldBeDisplayed() == true,
visible: true,
child: Expanded(
flex: 2,
child: Visibility(
visible: tests?.referanceRange != null,
child: Text(
"(${LocaleKeys.referenceRange.tr(context: context)}: ${tests?.referanceRange})",
style: TextStyle(
fontSize: 12.f,
fontWeight: FontWeight.w600,
fontFamily: 'Poppins',
color: AppColors.greyTextColor,
),
// overflow: TextOverflow.ellipsis,
// maxLines: 2,
softWrap: true,
),
), ),
softWrap: true,
), ),
) )
], ],

@ -1,5 +1,7 @@
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart'; import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.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/extensions/widget_extensions.dart';
@ -90,7 +92,7 @@ class _RateAppointmentDoctorState extends State<RateAppointmentDoctor> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
"Please rate the doctor".toText16(isBold: true), LocaleKeys.rateTheDoctor.tr(context: context).toText16(isBold: true),
SizedBox(height: 12), SizedBox(height: 12),
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -139,16 +141,23 @@ class _RateAppointmentDoctorState extends State<RateAppointmentDoctor> {
child: Padding( child: Padding(
padding: EdgeInsets.all(16.0), padding: EdgeInsets.all(16.0),
child: TextField( child: TextField(
maxLines: 4, maxLines: 4,
// style: TextStyle(
// fontSize: 14.f,
// fontWeight: FontWeight.w400,
// color: Color(0xff2B353E),
// letterSpacing: 0,
// fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins',
// ),
decoration: InputDecoration.collapsed( decoration: InputDecoration.collapsed(
hintText: LocaleKeys.notes.tr(context: context), hintText: LocaleKeys.notes.tr(context: context),
hintStyle: TextStyle( hintStyle: TextStyle(
fontSize: 16.f, fontSize: 16.f,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: Color(0xff2B353E), letterSpacing: -0.4,
letterSpacing: -0.64, fontFamily: getIt.get<AppState>().getLanguageCode() == "ar" ? 'CairoArabic' : 'Poppins',
height: 23 / 16)), ),
),
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
note = value; note = value;

@ -57,6 +57,7 @@ class _SelectedOrgansSectionState extends State<SelectedOrgansSection> {
LocaleKeys.selectedOrgans.tr(context: context), LocaleKeys.selectedOrgans.tr(context: context),
style: TextStyle( style: TextStyle(
fontSize: 16.f, fontSize: 16.f,
// isBold: true,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
color: AppColors.textColor, color: AppColors.textColor,
), ),

@ -55,7 +55,7 @@ class DatePickerWidget extends StatelessWidget {
labelText, labelText,
style: TextStyle( style: TextStyle(
fontSize: 12.f, fontSize: 12.f,
isBold: true, // isBold: true,
color: Color(0xff898A8D), color: Color(0xff898A8D),
letterSpacing: -0.2, letterSpacing: -0.2,
height: 18 / 12, height: 18 / 12,

@ -12,7 +12,6 @@ import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/theme/colors.dart'; import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:hmg_patient_app_new/widgets/dropdown/country_dropdown_widget.dart'; import 'package:hmg_patient_app_new/widgets/dropdown/country_dropdown_widget.dart';
import 'package:hmg_patient_app_new/widgets/time_picker_widget.dart'; import 'package:hmg_patient_app_new/widgets/time_picker_widget.dart';
import 'dart:ui' as ui;
class TextInputWidget extends StatelessWidget { class TextInputWidget extends StatelessWidget {
final String labelText; final String labelText;
@ -295,59 +294,70 @@ class TextInputWidget extends StatelessWidget {
Widget _buildTextField(BuildContext context) { Widget _buildTextField(BuildContext context) {
double fontS = fontSize ?? 14.f; double fontS = fontSize ?? 14.f;
final isArabic = getIt.get<AppState>().isArabic();
return Builder( return Builder(
builder: (context) { builder: (context) {
return Localizations.override( return Directionality(
context: context, textDirection: isArabic ? TextDirection.rtl : TextDirection.ltr,
locale: const Locale('en', 'US'), // Force English locale for TextField child: Localizations.override(
child: TextField( context: context,
hintLocales: const [Locale('en', 'US')], locale: const Locale('en', 'US'), // Force English locale for TextField
enabled: isEnable, child: TextField(
scrollPadding: EdgeInsets.zero, hintLocales: const [Locale('en', 'US')],
keyboardType: isMultiline ? TextInputType.multiline : (isWalletAmountInput! ? const TextInputType.numberWithOptions(decimal: true) : keyboardType), enabled: isEnable,
controller: controller, scrollPadding: EdgeInsets.zero,
readOnly: isReadOnly, keyboardType: isMultiline ? TextInputType.multiline : (isWalletAmountInput! ? const TextInputType.numberWithOptions(decimal: true) : keyboardType),
textAlignVertical: TextAlignVertical.top, controller: controller,
textAlign: TextAlign.left, readOnly: isReadOnly,
textDirection: TextDirection.ltr, textAlignVertical: TextAlignVertical.top,
onChanged: onChange, textAlign: isArabic ? TextAlign.right : TextAlign.left,
focusNode: focusNode ?? _focusNode, textDirection: TextDirection.ltr,
autofocus: autoFocus, onChanged: onChange,
textInputAction: TextInputAction.done, focusNode: focusNode ?? _focusNode,
cursorHeight: isWalletAmountInput! ? 40.h : 20.h, autofocus: autoFocus,
maxLength: isWalletAmountInput! ? 7 : 100, textInputAction: TextInputAction.done,
inputFormatters: isWalletAmountInput! cursorHeight: isWalletAmountInput! ? 40.h : 20.h,
? [ maxLength: isWalletAmountInput! ? 7 : 100,
_ThousandSeparatorInputFormatter(), inputFormatters: isWalletAmountInput!
] ? [
: null, _ThousandSeparatorInputFormatter(),
onTapOutside: (event) { ]
FocusManager.instance.primaryFocus?.unfocus(); : null,
}, onTapOutside: (event) {
onSubmitted: onSubmitted, FocusManager.instance.primaryFocus?.unfocus();
minLines: isMultiline ? minLines : 1, },
maxLines: isMultiline ? maxLines : 1, onSubmitted: onSubmitted,
style: TextStyle( minLines: isMultiline ? minLines : 1,
fontSize: fontS, maxLines: isMultiline ? maxLines : 1,
height: isMultiline ? 1.2 : (isWalletAmountInput! ? 1 / 4 : 0), style: TextStyle(
fontWeight: FontWeight.w600, fontSize: fontS,
color: AppColors.textColor, height: isMultiline ? 1.2 : (isWalletAmountInput! ? 1 / 4 : 0),
letterSpacing: -1, fontWeight: FontWeight.w600,
// fontFamily: keyboardType == TextInputType.number ? getIt.get<AppState>().isArabic() ? 'GESSTwo' : 'Poppins' : 'Poppins', color: AppColors.textColor,
fontFamily: fontFamily, letterSpacing: -1,
locale: const Locale('en', 'US'), // Force English locale for text style fontFamily: fontFamily,
), locale: const Locale('en', 'US'), // Force English locale for text style
decoration: InputDecoration( ),
counterText: "", decoration: InputDecoration(
isDense: true, counterText: "",
hintText: hintText, isDense: true,
hintStyle: TextStyle(fontSize: 14.f, height: 21 / 16, fontWeight: FontWeight.w600, color: hintColor != null ? AppColors.textColor : Color(0xff898A8D), letterSpacing: -0.75), hintText: hintText,
prefixIconConstraints: BoxConstraints(minWidth: 30.h), hintStyle: TextStyle(
prefixIcon: prefix == null ? null : "+${prefix!}".toText14(letterSpacing: -1, color: AppColors.textColor, isBold: true), fontFamily: isArabic ? 'CairoArabic' : 'Poppins',
contentPadding: EdgeInsets.zero, fontSize: 14.f,
border: InputBorder.none, height: 21 / 16,
focusedBorder: InputBorder.none, fontWeight: FontWeight.w600,
enabledBorder: InputBorder.none, color: hintColor != null ? AppColors.textColor : Color(0xff898A8D),
letterSpacing: -0.75,
),
prefixIconConstraints: BoxConstraints(minWidth: 30.h),
prefixIcon: prefix == null ? null : "+${prefix!}".toText14(letterSpacing: -1, color: AppColors.textColor, isBold: true),
contentPadding: EdgeInsets.zero,
border: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
),
), ),
), ),
); );

Loading…
Cancel
Save