pull/199/head
haroon amjad 2 days ago
parent d053f58b7d
commit 0ed6103b15

@ -165,11 +165,11 @@ extension SmoothContainerExtension on ShapeBorder {
shadows: hasShadow shadows: hasShadow
? [ ? [
BoxShadow( BoxShadow(
color: hasDenseShadow ? const Color(0xff000000).withOpacity(.30) : const Color(0xff000000).withOpacity(.1), // color: hasDenseShadow ? const Color(0xff000000).withOpacity(.06) : const Color(0xff000000).withOpacity(.1),
// color: AppColors.primaryRedColor.withOpacity(.5), color: const Color(0xffE1E1E1).withOpacity(1.0),
blurRadius: 10, blurRadius: 0,
spreadRadius: 0, spreadRadius: 0,
offset: const Offset(0, 0), offset: const Offset(1, 0),
) )
] ]
: [], : [],

@ -17,6 +17,7 @@ import 'package:hmg_patient_app_new/presentation/contact_us/live_chat_page.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/routes/custom_page_route.dart'; import 'package:hmg_patient_app_new/widgets/routes/custom_page_route.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class ContactUs extends StatelessWidget { class ContactUs extends StatelessWidget {
ContactUs({super.key}); ContactUs({super.key});
@ -33,6 +34,15 @@ class ContactUs extends StatelessWidget {
contactUsViewModel = Provider.of<ContactUsViewModel>(context); contactUsViewModel = Provider.of<ContactUsViewModel>(context);
return Column( return Column(
children: [ children: [
checkInOptionCard(
AppAssets.call_fill,
LocaleKeys.callNow.tr(),
// LocaleKeys.viewNearestHMGLocationsviewNearestHMGLocations.tr(),
"Call for immediate assistance",
).onPress(() {
launchUrl(Uri.parse("tel://" + "+966 92 006 6666"));
}),
SizedBox(height: 16.h),
checkInOptionCard( checkInOptionCard(
AppAssets.location, AppAssets.location,
LocaleKeys.findUs.tr(), LocaleKeys.findUs.tr(),
@ -46,26 +56,23 @@ class ContactUs extends StatelessWidget {
page: FindUsPage(), page: FindUsPage(),
), ),
); );
}, onFailure: () {
Navigator.pop(context);
Navigator.of(context).push(
CustomPageRoute(
page: FindUsPage(),
),
);
}, onLocationDeniedForever: () {
Navigator.pop(context);
Navigator.of(context).push(
CustomPageRoute(
page: FindUsPage(),
),
);
}); });
}), }),
SizedBox(height: 16.h), SizedBox(height: 16.h),
checkInOptionCard(
AppAssets.feedbackFill,
LocaleKeys.feedback.tr(),
LocaleKeys.provideFeedbackOnServices.tr(),
).onPress(() {
contactUsViewModel.setSelectedFeedbackType(
FeedbackType(id: 5, nameEN: "Not classified", nameAR: 'غير محدد'),
);
contactUsViewModel.setIsSendFeedbackTabSelected(true);
Navigator.pop(context);
Navigator.of(context).push(
CustomPageRoute(
page: FeedbackPage(),
),
);
}),
SizedBox(height: 16.h),
checkInOptionCard( checkInOptionCard(
AppAssets.ask_doctor_icon, AppAssets.ask_doctor_icon,
LocaleKeys.liveChat.tr(), LocaleKeys.liveChat.tr(),

File diff suppressed because it is too large Load Diff

@ -1,10 +1,20 @@
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_assets.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/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/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/insurance/insurance_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/insurance/insurance_home_page.dart';
import 'package:hmg_patient_app_new/presentation/profile_settings/profile_settings.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/buttons/custom_button.dart';
import 'package:hmg_patient_app_new/widgets/routes/custom_page_route.dart';
import 'package:hmg_patient_app_new/widgets/routes/spring_page_route_builder.dart';
import 'package:smooth_corner/smooth_corner.dart';
class WelcomeWidget extends StatelessWidget { class WelcomeWidget extends StatelessWidget {
final String name; final String name;
@ -20,33 +30,41 @@ class WelcomeWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return InkWell( return Column(
onTap: onTap, children: [
borderRadius: BorderRadius.circular(30), InkWell(
child: Row( onTap: onTap,
mainAxisSize: MainAxisSize.min, borderRadius: BorderRadius.circular(30),
spacing: 8.h, child: Row(
children: [
Image.asset(imageUrl, width: 40, height: 40),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 4.h,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
spacing: 8.h,
children: [ children: [
LocaleKeys.welcome.tr(context: context).toText14(color: AppColors.greyTextColor, height: 1, weight: FontWeight.w500), Icon(Icons.menu, color: AppColors.textColor).onPress(() {
Row( Navigator.of(context).push(springPageRoute(ProfileSettings()));
}),
Image.asset(imageUrl, width: 40, height: 40),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 4.h, spacing: 4.h,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Flexible(child: name.toText16(weight: FontWeight.w500, textOverflow: TextOverflow.ellipsis, maxlines: 1, height: 1, isEnglishOnly: true)), LocaleKeys.welcome.tr(context: context).toText14(color: AppColors.greyTextColor, height: 1, weight: FontWeight.w500),
Icon(Icons.keyboard_arrow_down, size: 20, color: AppColors.greyTextColor), Row(
spacing: 4.h,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Flexible(child: name.toText16(weight: FontWeight.w500, textOverflow: TextOverflow.ellipsis, maxlines: 1, height: 1, isEnglishOnly: true)),
// Icon(Icons.keyboard_arrow_down, size: 20, color: AppColors.greyTextColor),
Utils.buildSvgWithAssets(icon: AppAssets.arrowRight, height: 22.h, width: 22.w)
],
),
], ],
), ).expanded,
], ],
).expanded, ),
], ),
), ],
); );
} }
} }

@ -199,18 +199,23 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
], ],
), ),
SizedBox(width: 4.h), SizedBox(width: 4.h),
Utils.buildSvgWithAssets(icon: AppAssets.arrow_down, height: 22.h, width: 22.w) Utils.buildSvgWithAssets(icon: AppAssets.arrowRight, height: 22.h, width: 22.w)
], ],
).onPress(() { ).onPress(() {
DialogService dialogService = getIt.get<DialogService>(); Navigator.of(context).push(
dialogService.showFamilyBottomSheetWithoutH( CustomPageRoute(
label: LocaleKeys.familyTitle.tr(context: context), page: FamilyMedicalScreen(),
message: "", ),
isShowManageButton: true, );
onSwitchPress: (FamilyFileResponseModelLists profile) { // DialogService dialogService = getIt.get<DialogService>();
medicalFileViewModel.switchFamilyFiles(responseID: profile.responseId, patientID: profile.patientId, phoneNumber: profile.mobileNumber); // dialogService.showFamilyBottomSheetWithoutH(
}, // label: LocaleKeys.familyTitle.tr(context: context),
profiles: medicalFileViewModel.patientFamilyFiles); // message: "",
// isShowManageButton: true,
// onSwitchPress: (FamilyFileResponseModelLists profile) {
// medicalFileViewModel.switchFamilyFiles(responseID: profile.responseId, patientID: profile.patientId, phoneNumber: profile.mobileNumber);
// },
// profiles: medicalFileViewModel.patientFamilyFiles);
}), }),
isLeading: widget.showBackIcon, isLeading: widget.showBackIcon,
// leadingCallback: () { // leadingCallback: () {

@ -1,3 +1,5 @@
import 'dart:async';
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_assets.dart'; import 'package:hmg_patient_app_new/core/app_assets.dart';
@ -9,16 +11,22 @@ 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/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart'; import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart';
import 'package:hmg_patient_app_new/features/medical_file/models/family_file_response_model.dart'; import 'package:hmg_patient_app_new/features/medical_file/models/family_file_response_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/insurance/widgets/insurance_update_details_card.dart';
import 'package:hmg_patient_app_new/services/dialog_service.dart'; import 'package:hmg_patient_app_new/services/dialog_service.dart';
import 'package:hmg_patient_app_new/services/navigation_service.dart'; import 'package:hmg_patient_app_new/services/navigation_service.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/buttons/custom_button.dart'; import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart';
import 'package:hmg_patient_app_new/widgets/chip/app_custom_chip_widget.dart';
import 'package:hmg_patient_app_new/widgets/chip/custom_chip_widget.dart'; import 'package:hmg_patient_app_new/widgets/chip/custom_chip_widget.dart';
import 'package:hmg_patient_app_new/widgets/common_bottom_sheet.dart';
import 'package:provider/provider.dart';
class FamilyCards extends StatefulWidget { class FamilyCards extends StatefulWidget {
final List<FamilyFileResponseModelLists> profiles; final List<FamilyFileResponseModelLists> profiles;
late List<FamilyFileResponseModelLists>? profileViewList;
final Function(FamilyFileResponseModelLists) onSelect; final Function(FamilyFileResponseModelLists) onSelect;
final Function(FamilyFileResponseModelLists) onRemove; final Function(FamilyFileResponseModelLists) onRemove;
final bool isShowDetails; final bool isShowDetails;
@ -28,11 +36,12 @@ class FamilyCards extends StatefulWidget {
final bool isShowRemoveButton; final bool isShowRemoveButton;
final bool isForWalletRecharge; final bool isForWalletRecharge;
const FamilyCards( FamilyCards(
{super.key, {super.key,
required this.profiles, required this.profiles,
required this.onSelect, required this.onSelect,
required this.onRemove, required this.onRemove,
this.profileViewList,
this.isShowDetails = false, this.isShowDetails = false,
this.isBottomSheet = false, this.isBottomSheet = false,
this.isRequestDesign = false, this.isRequestDesign = false,
@ -46,9 +55,22 @@ class FamilyCards extends StatefulWidget {
class _FamilyCardsState extends State<FamilyCards> { class _FamilyCardsState extends State<FamilyCards> {
AppState appState = getIt<AppState>(); AppState appState = getIt<AppState>();
late InsuranceViewModel insuranceViewModel;
@override
void initState() {
scheduleMicrotask(() {
insuranceViewModel.initInsuranceProvider();
});
super.initState();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
widget.profileViewList = [];
widget.profileViewList!.addAll(widget.profiles);
widget.profileViewList!.removeWhere((element) => element.responseId == appState.getAuthenticatedUser()?.patientId);
insuranceViewModel = Provider.of<InsuranceViewModel>(context, listen: false);
DialogService dialogService = getIt.get<DialogService>(); DialogService dialogService = getIt.get<DialogService>();
if (widget.isRequestDesign) { if (widget.isRequestDesign) {
return Column( return Column(
@ -71,15 +93,15 @@ class _FamilyCardsState extends State<FamilyCards> {
], ],
), ),
SizedBox(height: 24.h), SizedBox(height: 24.h),
widget.profiles.where((profile) => profile.isRequestFromMySide ?? false).isEmpty widget.profileViewList!.where((profile) => profile.isRequestFromMySide ?? false).isEmpty
? Utils.getNoDataWidget(context) ? Utils.getNoDataWidget(context)
: ListView.builder( : ListView.builder(
shrinkWrap: true, shrinkWrap: true,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
itemCount: widget.profiles.where((profile) => profile.isRequestFromMySide ?? false).length, itemCount: widget.profileViewList!.where((profile) => profile.isRequestFromMySide ?? false).length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
final mySideProfiles = widget.profiles.where((profile) => profile.isRequestFromMySide ?? false).toList(); final mySideProfiles = widget.profileViewList!.where((profile) => profile.isRequestFromMySide ?? false).toList();
FamilyFileResponseModelLists profile = mySideProfiles[index]; FamilyFileResponseModelLists profile = mySideProfiles[index];
return Container( return Container(
margin: EdgeInsets.only(bottom: 12.h), margin: EdgeInsets.only(bottom: 12.h),
@ -146,113 +168,252 @@ class _FamilyCardsState extends State<FamilyCards> {
], ],
); );
} else { } else {
return GridView.builder( return Column(
shrinkWrap: true, children: [
physics: NeverScrollableScrollPhysics(), Container(
itemCount: widget.profiles.length, width: double.infinity,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 12.r),
crossAxisCount: 2, child: Padding(
crossAxisSpacing: 10.w, padding: EdgeInsets.all(16.w),
mainAxisSpacing: 10.h, child: Column(
childAspectRatio: widget.isShowDetails ? 0.56.h : 0.74.h, crossAxisAlignment: CrossAxisAlignment.start,
),
padding: EdgeInsets.only(bottom: 20.h),
itemBuilder: (context, index) {
final profile = widget.profiles[index];
final isActive = (profile.responseId == appState.getAuthenticatedUser()?.patientId);
final isParentUser = appState.getAuthenticatedUser()?.isParentUser ?? false;
final canSwitch = isParentUser || (!isParentUser && profile.responseId == appState.getSuperUserID);
return Container(
padding: EdgeInsets.symmetric(vertical: 15.h, horizontal: 15.h),
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.r),
child: Opacity(
opacity: isActive || profile.status == FamilyFileEnum.pending.toInt || !canSwitch ? 0.4 : 1.0, // Fade all content if active
child: Stack(
children: [ children: [
Column( Row(
mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Utils.buildImgWithAssets( Image.asset(appState.getAuthenticatedUser()?.gender == 1 ? AppAssets.maleImg : AppAssets.femaleImg, width: 56.w, height: 56.h),
icon: profile.gender == null SizedBox(width: 8.w),
? AppAssets.dummyUser Column(
: profile.gender == 1 crossAxisAlignment: CrossAxisAlignment.start,
? ((profile.age ?? 0) < 7 ? AppAssets.babyBoyImg : AppAssets.maleImg) children: [
: (profile.age! < 7 ? AppAssets.babyGirlImg : AppAssets.femaleImg), SizedBox(
width: 72.h, width: MediaQuery.of(context).size.width * 0.6,
height: 70.h, child: "${appState.getAuthenticatedUser()!.firstName} ${appState.getAuthenticatedUser()!.lastName}"
.toText18(isBold: true, weight: FontWeight.w600, textOverflow: TextOverflow.ellipsis, maxlines: 2),
),
SizedBox(height: 4.h),
Wrap(
direction: Axis.horizontal,
spacing: 4.w,
runSpacing: 6.w,
children: [
AppCustomChipWidget(
icon: AppAssets.file_icon,
richText: "${LocaleKeys.fileno.tr(context: context)}: ${appState.getAuthenticatedUser()!.patientId}".toText10(isEnglishOnly: true),
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
),
AppCustomChipWidget(
icon: AppAssets.checkmark_icon,
labelText: LocaleKeys.verified.tr(context: context),
iconColor: AppColors.successColor,
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
),
],
),
],
)
],
),
SizedBox(height: 16.h),
Divider(color: AppColors.dividerColor, height: 1.h),
SizedBox(height: 16.h),
Wrap(
direction: Axis.horizontal,
spacing: 4.h,
runSpacing: 4.h,
children: [
AppCustomChipWidget(
labelText: LocaleKeys.ageYearsOld.tr(namedArgs: {'age': '${appState.getAuthenticatedUser()!.age}', 'yearsOld': LocaleKeys.yearsOld.tr(context: context)}, context: context),
labelPadding: EdgeInsetsDirectional.only(start: 8.w, end: 8.w),
), ),
SizedBox(height: 8.h), AppCustomChipWidget(
(profile.patientName ?? "Unknown").toText14(isBold: false, isCenter: true, maxlines: 1, weight: FontWeight.w600), icon: AppAssets.blood_icon,
SizedBox(height: 8.h), labelText: appState.getUserBloodGroup.isEmpty ? "N/A" : appState.getUserBloodGroup,
CustomChipWidget( iconColor: AppColors.primaryRedColor,
chipType: ChipTypeEnum.alert, labelPadding: EdgeInsetsDirectional.only(start: -6.w, end: 6.w),
backgroundColor: AppColors.lightGrayBGColor, padding: EdgeInsets.zero,
chipText: "Relation: ${profile.relationship ?? " N/A"}", ),
iconAsset: AppAssets.heart, Consumer<InsuranceViewModel>(builder: (context, insuranceVM, child) {
isShowBorder: false, return AppCustomChipWidget(
borderRadius: 8.h, icon: insuranceVM.isInsuranceExpired
textColor: AppColors.textColor), ? AppAssets.cancel_circle_icon
widget.isShowDetails ? SizedBox(height: 4.h) : SizedBox(), : insuranceVM.isInsuranceActive
widget.isShowDetails ? AppAssets.insurance_active_icon
? CustomChipWidget( : AppAssets.alertSquare,
labelText: insuranceVM.isInsuranceExpired
? LocaleKeys.insuranceExpired.tr(context: context)
: insuranceVM.isInsuranceActive
? LocaleKeys.insuranceActive.tr(context: context)
: LocaleKeys.insuranceInActive.tr(context: context),
iconColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor
: insuranceVM.isInsuranceActive
? AppColors.successColor
: AppColors.warningColorYellow,
textColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor
: insuranceVM.isInsuranceActive
? AppColors.successColor
: AppColors.warningColorYellow,
iconSize: 12.w,
deleteIcon: insuranceVM.isInsuranceActive ? null : AppAssets.forward_chevron_icon,
deleteIconColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor
: insuranceVM.isInsuranceActive
? AppColors.successColor
: AppColors.warningColorYellow,
deleteIconHasColor: true,
onChipTap: () {
if (!insuranceVM.isInsuranceActive) {
insuranceVM.setIsInsuranceUpdateDetailsLoading(true);
insuranceVM.getPatientInsuranceDetailsForUpdate(
appState.getAuthenticatedUser()!.patientId.toString(), appState.getAuthenticatedUser()!.patientIdentificationNo.toString());
showCommonBottomSheetWithoutHeight(context, child: PatientInsuranceCardUpdateCard(), callBackFunc: () {}, title: "", isCloseButtonVisible: false, isFullScreen: false);
// showCommonBottomSheetWithoutHeight(
// title: LocaleKeys.notice.tr(context: navigationService.navigatorKey.currentContext!),
// navigationService.navigatorKey.currentContext!,
// child: Utils.getWarningWidget(
// loadingText: LocaleKeys.insuranceInActiveContactSupport.tr(context: context),
// confirmText: LocaleKeys.contactUs.tr(context: context),
// isShowActionButtons: true,
// onCancelTap: () {
// navigationService.pop();
// },
// onConfirmTap: () async {
// launchUrl(Uri.parse("tel://" + "+966 92 006 6666"));
// }),
// callBackFunc: () {},
// isFullScreen: false,
// isCloseButtonVisible: true,
// );
}
},
backgroundColor: insuranceVM.isInsuranceExpired
? AppColors.primaryRedColor.withOpacity(0.1)
: insuranceVM.isInsuranceActive
? AppColors.successColor.withOpacity(0.1)
: AppColors.warningColorYellow.withOpacity(0.1),
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: insuranceVM.isInsuranceActive ? 6.w : 0.w),
).toShimmer2(isShow: insuranceVM.isInsuranceLoading);
}),
],
),
],
),
),
).paddingSymmetrical(0.w, 0.0),
SizedBox(height: 16.h),
GridView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: widget.profileViewList!.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 10.w,
mainAxisSpacing: 10.h,
childAspectRatio: widget.isShowDetails ? 0.56.h : 0.74.h,
),
padding: EdgeInsets.only(bottom: 20.h),
itemBuilder: (context, index) {
final profile = widget.profileViewList![index];
final isActive = (profile.responseId == appState.getAuthenticatedUser()?.patientId);
final isParentUser = appState.getAuthenticatedUser()?.isParentUser ?? false;
final canSwitch = isParentUser || (!isParentUser && profile.responseId == appState.getSuperUserID);
return Container(
padding: EdgeInsets.symmetric(vertical: 15.h, horizontal: 15.h),
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.r),
child: Opacity(
opacity: isActive || profile.status == FamilyFileEnum.pending.toInt || !canSwitch ? 0.4 : 1.0, // Fade all content if active
child: Stack(
children: [
Column(
mainAxisSize: MainAxisSize.min,
children: [
Utils.buildImgWithAssets(
icon: profile.gender == null
? AppAssets.dummyUser
: profile.gender == 1
? ((profile.age ?? 0) < 7 ? AppAssets.babyBoyImg : AppAssets.maleImg)
: (profile.age! < 7 ? AppAssets.babyGirlImg : AppAssets.femaleImg),
width: 72.h,
height: 70.h,
),
SizedBox(height: 8.h),
(profile.patientName ?? "Unknown").toText14(isBold: false, isCenter: true, maxlines: 1, weight: FontWeight.w600),
SizedBox(height: 8.h),
CustomChipWidget(
chipType: ChipTypeEnum.alert, chipType: ChipTypeEnum.alert,
backgroundColor: AppColors.lightGrayBGColor, backgroundColor: AppColors.lightGrayBGColor,
chipText: "Age:${profile.age ?? "N/A"} Years", chipText: "Relation: ${profile.relationship ?? " N/A"}",
iconAsset: AppAssets.heart,
isShowBorder: false, isShowBorder: false,
borderRadius: 8.h, borderRadius: 8.h,
textColor: AppColors.textColor, textColor: AppColors.textColor),
) widget.isShowDetails ? SizedBox(height: 4.h) : SizedBox(),
: SizedBox(), widget.isShowDetails
widget.isShowDetails ? CustomChipWidget(
? SizedBox(height: 8.h) chipType: ChipTypeEnum.alert,
: SizedBox( backgroundColor: AppColors.lightGrayBGColor,
height: 4.h, chipText: "Age: ${profile.age ?? "N/A"} Years",
), isShowBorder: false,
Spacer(), borderRadius: 8.h,
widget.isForWalletRecharge ? CustomButton( textColor: AppColors.textColor,
height: 40.h, )
onPressed: () { : SizedBox(),
widget.onSelect(profile); widget.isShowDetails
// if (canSwitch) widget.onSelect(profile); ? SizedBox(height: 8.h)
}, : SizedBox(
text: LocaleKeys.select.tr(context: context), height: 4.h,
backgroundColor: AppColors.secondaryLightRedColor, ),
borderColor: AppColors.secondaryLightRedColor, Spacer(),
textColor: AppColors.primaryRedColor, widget.isForWalletRecharge
fontSize: 13.h, ? CustomButton(
icon: AppAssets.activeCheck, height: 40.h,
iconColor: isActive || !canSwitch ? (isActive ? null : AppColors.greyTextColor) : AppColors.primaryRedColor, onPressed: () {
padding: EdgeInsets.symmetric(vertical: 0, horizontal: 0), widget.onSelect(profile);
).paddingOnly(top: 0, bottom: 0) : CustomButton( // if (canSwitch) widget.onSelect(profile);
height: 40.h, },
onPressed: () { text: LocaleKeys.select.tr(context: context),
if (canSwitch) widget.onSelect(profile); backgroundColor: AppColors.secondaryLightRedColor,
}, borderColor: AppColors.secondaryLightRedColor,
text: isActive ? LocaleKeys.active.tr(context: context) : LocaleKeys.switchLogin.tr(context: context), textColor: AppColors.primaryRedColor,
backgroundColor: isActive || !canSwitch ? Colors.grey.shade200 : AppColors.secondaryLightRedColor, fontSize: 13.h,
borderColor: isActive || !canSwitch ? Colors.grey.shade200 : AppColors.secondaryLightRedColor, icon: AppAssets.activeCheck,
textColor: isActive || !canSwitch ? AppColors.greyTextColor : AppColors.primaryRedColor, iconColor: isActive || !canSwitch ? (isActive ? null : AppColors.greyTextColor) : AppColors.primaryRedColor,
fontSize: 13.h, padding: EdgeInsets.symmetric(vertical: 0, horizontal: 0),
icon: isActive ? AppAssets.activeCheck : AppAssets.switch_user, ).paddingOnly(top: 0, bottom: 0)
iconColor: isActive || !canSwitch ? (isActive ? null : AppColors.greyTextColor) : AppColors.primaryRedColor, : CustomButton(
padding: EdgeInsets.symmetric(vertical: 0, horizontal: 0), height: 40.h,
).paddingOnly(top: 0, bottom: 0), onPressed: () {
if (canSwitch) widget.onSelect(profile);
},
text: isActive ? LocaleKeys.active.tr(context: context) : LocaleKeys.switchLogin.tr(context: context),
backgroundColor: isActive || !canSwitch ? Colors.grey.shade200 : AppColors.secondaryLightRedColor,
borderColor: isActive || !canSwitch ? Colors.grey.shade200 : AppColors.secondaryLightRedColor,
textColor: isActive || !canSwitch ? AppColors.greyTextColor : AppColors.primaryRedColor,
fontSize: 13.h,
icon: isActive ? AppAssets.activeCheck : AppAssets.switch_user,
iconColor: isActive || !canSwitch ? (isActive ? null : AppColors.greyTextColor) : AppColors.primaryRedColor,
padding: EdgeInsets.symmetric(vertical: 0, horizontal: 0),
).paddingOnly(top: 0, bottom: 0),
],
),
if (widget.isShowRemoveButton) ...[
Positioned(
top: 0,
right: 0,
child: Utils.buildSvgWithAssets(icon: AppAssets.deleteIcon).onPress(() {
if (!isActive) widget.onRemove(profile);
}),
),
],
], ],
), ),
if (widget.isShowRemoveButton) ...[ ),
Positioned( );
top: 0, },
right: 0, ),
child: Utils.buildSvgWithAssets(icon: AppAssets.deleteIcon).onPress(() { ],
if (!isActive) widget.onRemove(profile);
}),
),
],
],
),
),
);
},
); );
} }
} }
@ -260,15 +421,15 @@ class _FamilyCardsState extends State<FamilyCards> {
Widget manageFamily() { Widget manageFamily() {
NavigationService navigationService = getIt<NavigationService>(); NavigationService navigationService = getIt<NavigationService>();
return widget.profiles.where((profile) => !(profile.isRequestFromMySide ?? false)).isEmpty return widget.profileViewList!.where((profile) => !(profile.isRequestFromMySide ?? false)).isEmpty
? Utils.getNoDataWidget(context) ? Utils.getNoDataWidget(context)
: ListView.builder( : ListView.builder(
shrinkWrap: true, shrinkWrap: true,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
padding: EdgeInsetsGeometry.zero, padding: EdgeInsetsGeometry.zero,
itemCount: widget.profiles.where((profile) => !(profile.isRequestFromMySide ?? false)).length, itemCount: widget.profileViewList!.where((profile) => !(profile.isRequestFromMySide ?? false)).length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
final otherProfiles = widget.profiles.where((profile) => !(profile.isRequestFromMySide ?? false)).toList(); final otherProfiles = widget.profileViewList!.where((profile) => !(profile.isRequestFromMySide ?? false)).toList();
FamilyFileResponseModelLists profile = otherProfiles[index]; FamilyFileResponseModelLists profile = otherProfiles[index];
return Container( return Container(
margin: EdgeInsets.only(bottom: 12.h), margin: EdgeInsets.only(bottom: 12.h),

@ -15,12 +15,15 @@ import 'package:hmg_patient_app_new/extensions/int_extensions.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';
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/features/contact_us/contact_us_view_model.dart';
import 'package:hmg_patient_app_new/features/contact_us/models/feedback_type.dart';
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart'; import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart'; import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart';
import 'package:hmg_patient_app_new/features/medical_file/medical_file_view_model.dart'; import 'package:hmg_patient_app_new/features/medical_file/medical_file_view_model.dart';
import 'package:hmg_patient_app_new/features/medical_file/models/family_file_response_model.dart'; import 'package:hmg_patient_app_new/features/medical_file/models/family_file_response_model.dart';
import 'package:hmg_patient_app_new/features/profile_settings/profile_settings_view_model.dart'; import 'package:hmg_patient_app_new/features/profile_settings/profile_settings_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/contact_us/feedback_page.dart';
import 'package:hmg_patient_app_new/presentation/habib_wallet/habib_wallet_page.dart'; import 'package:hmg_patient_app_new/presentation/habib_wallet/habib_wallet_page.dart';
import 'package:hmg_patient_app_new/presentation/habib_wallet/recharge_wallet_page.dart'; import 'package:hmg_patient_app_new/presentation/habib_wallet/recharge_wallet_page.dart';
import 'package:hmg_patient_app_new/presentation/insurance/widgets/insurance_update_details_card.dart'; import 'package:hmg_patient_app_new/presentation/insurance/widgets/insurance_update_details_card.dart';
@ -88,10 +91,12 @@ class ProfileSettingsState extends State<ProfileSettings> {
int length = 3; int length = 3;
final SwiperController _controller = SwiperController(); final SwiperController _controller = SwiperController();
late InsuranceViewModel insuranceViewModel; late InsuranceViewModel insuranceViewModel;
late ContactUsViewModel contactUsViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
insuranceViewModel = Provider.of<InsuranceViewModel>(context, listen: false); insuranceViewModel = Provider.of<InsuranceViewModel>(context, listen: false);
contactUsViewModel = Provider.of<ContactUsViewModel>(context, listen: false);
return CollapsingListView( return CollapsingListView(
title: LocaleKeys.profileAndSettings.tr(context: context), title: LocaleKeys.profileAndSettings.tr(context: context),
logout: () { logout: () {
@ -106,102 +111,102 @@ class ProfileSettingsState extends State<ProfileSettings> {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox( // SizedBox(
height: dynamicItemHeight(context) + 20 + 30, // itemHeight + shadow padding (10 top + 10 bottom) + pagination dots space // height: dynamicItemHeight(context) + 20 + 30, // itemHeight + shadow padding (10 top + 10 bottom) + pagination dots space
child: Swiper( // child: Swiper(
itemCount: medicalVm.patientFamilyFiles.length, // itemCount: medicalVm.patientFamilyFiles.length,
layout: SwiperLayout.STACK, // layout: SwiperLayout.STACK,
loop: true, // loop: true,
itemHeight: dynamicItemHeight(context) + 20, // itemHeight: dynamicItemHeight(context) + 20,
// extra space for shadow // // extra space for shadow
itemWidth: SizeUtils.width - 30.w, // itemWidth: SizeUtils.width - 30.w,
indicatorLayout: PageIndicatorLayout.COLOR, // indicatorLayout: PageIndicatorLayout.COLOR,
axisDirection: getIt.get<AppState>().isArabic() ? AxisDirection.left : AxisDirection.right, // axisDirection: getIt.get<AppState>().isArabic() ? AxisDirection.left : AxisDirection.right,
controller: _controller, // controller: _controller,
pagination: SwiperPagination( // pagination: SwiperPagination(
alignment: Alignment.bottomCenter, // alignment: Alignment.bottomCenter,
margin: EdgeInsets.only(top: (180.h + 20 + 8.h + 24.h)), // margin: EdgeInsets.only(top: (180.h + 20 + 8.h + 24.h)),
builder: DotSwiperPaginationBuilder(color: Color(0xffD9D9D9), activeColor: AppColors.blackBgColor), // builder: DotSwiperPaginationBuilder(color: Color(0xffD9D9D9), activeColor: AppColors.blackBgColor),
), // ),
itemBuilder: (BuildContext context, int index) { // itemBuilder: (BuildContext context, int index) {
return Padding( // return Padding(
padding: const EdgeInsets.symmetric(vertical: 10), // padding: const EdgeInsets.symmetric(vertical: 10),
child: FamilyCardWidget( // child: FamilyCardWidget(
profile: medicalVm.patientFamilyFiles[index], // profile: medicalVm.patientFamilyFiles[index],
onAddFamilyMemberPress: () { // onAddFamilyMemberPress: () {
DialogService dialogService = getIt.get<DialogService>(); // DialogService dialogService = getIt.get<DialogService>();
dialogService.showAddFamilyFileSheet( // dialogService.showAddFamilyFileSheet(
label: LocaleKeys.addFamilyMember.tr(context: context), // label: LocaleKeys.addFamilyMember.tr(context: context),
message: LocaleKeys.pleaseFillBelowFieldToAddNewFamilyMember.tr(context: context), // message: LocaleKeys.pleaseFillBelowFieldToAddNewFamilyMember.tr(context: context),
onVerificationPress: () { // onVerificationPress: () {
medicalVm.addFamilyFile(otpTypeEnum: OTPTypeEnum.sms); // medicalVm.addFamilyFile(otpTypeEnum: OTPTypeEnum.sms);
}); // });
}, // },
onFamilySwitchPress: (FamilyFileResponseModelLists profile) { // onFamilySwitchPress: (FamilyFileResponseModelLists profile) {
medicalVm.switchFamilyFiles(responseID: profile.responseId, patientID: profile.patientId, phoneNumber: profile.mobileNumber); // medicalVm.switchFamilyFiles(responseID: profile.responseId, patientID: profile.patientId, phoneNumber: profile.mobileNumber);
}, // },
).paddingOnly(right: 16.w, left: 8.w), // ).paddingOnly(right: 16.w, left: 8.w),
); // );
}, // },
), // ),
), // ),
SizedBox(height: 16.h), // SizedBox(height: 16.h),
GridView( // GridView(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: isTablet ? 3 : 2), // gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: isTablet ? 3 : 2),
physics: const NeverScrollableScrollPhysics(), // physics: const NeverScrollableScrollPhysics(),
padding: EdgeInsets.only(left: 24.w, right: 24.w, bottom: 24.h), // padding: EdgeInsets.only(left: 24.w, right: 24.w, bottom: 24.h),
shrinkWrap: true, // shrinkWrap: true,
children: [ // children: [
Container( // Container(
padding: EdgeInsets.all(16.w), // padding: EdgeInsets.all(16.w),
decoration: RoundedRectangleBorder().toSmoothCornerDecoration( // decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor, // color: AppColors.whiteColor,
borderRadius: 20.r, // borderRadius: 20.r,
hasShadow: true, // hasShadow: true,
), // ),
child: Column( // child: Column(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
// spacing: 4.h, // // spacing: 4.h,
children: [ // children: [
Row( // Row(
spacing: 8.w, // spacing: 8.w,
crossAxisAlignment: CrossAxisAlignment.center, // crossAxisAlignment: CrossAxisAlignment.center,
children: [ // children: [
Utils.buildSvgWithAssets(icon: AppAssets.wallet, width: 40.w, height: 40.h, applyThemeColor: false), // Utils.buildSvgWithAssets(icon: AppAssets.wallet, width: 40.w, height: 40.h, applyThemeColor: false),
LocaleKeys.habibWallet.tr(context: context).toText16(weight: FontWeight.w600, maxlines: 2).expanded, // LocaleKeys.habibWallet.tr(context: context).toText16(weight: FontWeight.w600, maxlines: 2).expanded,
Utils.buildSvgWithAssets(icon: getIt.get<AppState>().isArabic() ? AppAssets.arrow_back : AppAssets.arrow_forward), // Utils.buildSvgWithAssets(icon: getIt.get<AppState>().isArabic() ? AppAssets.arrow_back : AppAssets.arrow_forward),
], // ],
), // ),
Spacer(), // Spacer(),
Consumer<HabibWalletViewModel>(builder: (context, habibWalletVM, child) { // Consumer<HabibWalletViewModel>(builder: (context, habibWalletVM, child) {
return Utils.getPaymentAmountWithSymbol2(habibWalletVM.habibWalletAmount, isExpanded: false) // return Utils.getPaymentAmountWithSymbol2(habibWalletVM.habibWalletAmount, isExpanded: false)
.toShimmer2(isShow: habibWalletVM.isWalletAmountLoading, radius: 12.r, width: 80.w, height: 24.h); // .toShimmer2(isShow: habibWalletVM.isWalletAmountLoading, radius: 12.r, width: 80.w, height: 24.h);
}), // }),
Spacer(), // Spacer(),
CustomButton( // CustomButton(
height: 40.h, // height: 40.h,
icon: AppAssets.recharge_icon, // icon: AppAssets.recharge_icon,
iconSize: 22.w, // iconSize: 22.w,
iconColor: AppColors.infoColor, // iconColor: AppColors.infoColor,
textColor: AppColors.infoColor, // textColor: AppColors.infoColor,
text: LocaleKeys.recharge.tr(context: context), // text: LocaleKeys.recharge.tr(context: context),
borderWidth: 0.w, // borderWidth: 0.w,
fontWeight: FontWeight.w500, // fontWeight: FontWeight.w500,
borderColor: Colors.transparent, // borderColor: Colors.transparent,
backgroundColor: Color(0xff45A2F8).withValues(alpha: 0.08), // backgroundColor: Color(0xff45A2F8).withValues(alpha: 0.08),
padding: EdgeInsets.all(8.w), // padding: EdgeInsets.all(8.w),
fontSize: 14.f, // fontSize: 14.f,
onPressed: () { // onPressed: () {
Navigator.of(context).push(CustomPageRoute(page: RechargeWalletPage())); // Navigator.of(context).push(CustomPageRoute(page: RechargeWalletPage()));
}, // },
), // ),
], // ],
).onPress(() { // ).onPress(() {
Navigator.of(context).push(CustomPageRoute(page: HabibWalletPage())); // Navigator.of(context).push(CustomPageRoute(page: HabibWalletPage()));
}), // }),
), // ),
], // ],
), // ),
LocaleKeys.quickActions.tr(context: context).toText18(weight: FontWeight.w600, textOverflow: TextOverflow.ellipsis, maxlines: 1).paddingOnly(left: 24.w, right: 24.w), LocaleKeys.quickActions.tr(context: context).toText18(weight: FontWeight.w600, textOverflow: TextOverflow.ellipsis, maxlines: 1).paddingOnly(left: 24.w, right: 24.w),
Container( Container(
margin: EdgeInsets.only(left: 24.w, right: 24.w, top: 16.h, bottom: 24.h), margin: EdgeInsets.only(left: 24.w, right: 24.w, top: 16.h, bottom: 24.h),
@ -253,31 +258,31 @@ class ProfileSettingsState extends State<ProfileSettings> {
// ], // ],
// ), // ),
// ), // ),
LocaleKeys.personalInformation.tr(context: context).toText18(weight: FontWeight.w600, textOverflow: TextOverflow.ellipsis, maxlines: 1).paddingOnly(left: 24.w, right: 24.w), // LocaleKeys.personalInformation.tr(context: context).toText18(weight: FontWeight.w600, textOverflow: TextOverflow.ellipsis, maxlines: 1).paddingOnly(left: 24.w, right: 24.w),
Container( // Container(
margin: EdgeInsets.only(left: 24.w, right: 24.w, top: 16.h, bottom: 24.h), // margin: EdgeInsets.only(left: 24.w, right: 24.w, top: 16.h, bottom: 24.h),
padding: EdgeInsets.only(top: 4.h, bottom: 4.h), // padding: EdgeInsets.only(top: 4.h, bottom: 4.h),
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.r, hasShadow: true), // decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.r, hasShadow: true),
child: Column( // child: Column(
children: [ // children: [
actionItem(AppAssets.email_transparent, LocaleKeys.updateEmailAddress.tr(context: context), () { // actionItem(AppAssets.email_transparent, LocaleKeys.updateEmailAddress.tr(context: context), () {
showCommonBottomSheetWithoutHeight( // showCommonBottomSheetWithoutHeight(
context, // context,
title: LocaleKeys.updateEmailAddress.tr(context: context), // title: LocaleKeys.updateEmailAddress.tr(context: context),
child: UpdateEmailDialog(), // child: UpdateEmailDialog(),
callBackFunc: () {}, // callBackFunc: () {},
isFullScreen: false, // isFullScreen: false,
); // );
}), // }),
// 1.divider, // // 1.divider,
// actionItem(AppAssets.smart_phone_fill, "Phone Number".needTranslation, () {}), // // actionItem(AppAssets.smart_phone_fill, "Phone Number".needTranslation, () {}),
// 1.divider, // // 1.divider,
// actionItem(AppAssets.my_address, "My Addresses".needTranslation, () {}), // // actionItem(AppAssets.my_address, "My Addresses".needTranslation, () {}),
// 1.divider, // // 1.divider,
// actionItem(AppAssets.emergency, "Emergency Contact".needTranslation, () {}), // // actionItem(AppAssets.emergency, "Emergency Contact".needTranslation, () {}),
], // ],
), // ),
), // ),
LocaleKeys.helpAndSupport.tr(context: context).toText18(weight: FontWeight.w600, textOverflow: TextOverflow.ellipsis, maxlines: 1).paddingOnly(left: 24.w, right: 24.w), LocaleKeys.helpAndSupport.tr(context: context).toText18(weight: FontWeight.w600, textOverflow: TextOverflow.ellipsis, maxlines: 1).paddingOnly(left: 24.w, right: 24.w),
Container( Container(
margin: EdgeInsets.only(left: 24.w, right: 24.w, top: 16.h), margin: EdgeInsets.only(left: 24.w, right: 24.w, top: 16.h),
@ -289,6 +294,19 @@ class ProfileSettingsState extends State<ProfileSettings> {
launchUrl(Uri.parse("tel://" + "+966 92 006 6666")); launchUrl(Uri.parse("tel://" + "+966 92 006 6666"));
}, trailingLabel: "92 006 6666"), }, trailingLabel: "92 006 6666"),
1.divider, 1.divider,
actionItem(AppAssets.feedbackFill, LocaleKeys.feedback.tr(context: context), () {
contactUsViewModel.setSelectedFeedbackType(
FeedbackType(id: 5, nameEN: "Not classified", nameAR: 'غير محدد'),
);
contactUsViewModel.setIsSendFeedbackTabSelected(true);
Navigator.pop(context);
Navigator.of(context).push(
CustomPageRoute(
page: FeedbackPage(),
),
);
}, trailingLabel: ""),
1.divider,
// actionItem(AppAssets.permission, LocaleKeys.permissions.tr(context: context), () {}, trailingLabel: "Location, Camera"), // actionItem(AppAssets.permission, LocaleKeys.permissions.tr(context: context), () {}, trailingLabel: "Location, Camera"),
// 1.divider, // 1.divider,
actionItem(AppAssets.rate, LocaleKeys.rateApp.tr(context: context), () { actionItem(AppAssets.rate, LocaleKeys.rateApp.tr(context: context), () {

@ -166,7 +166,7 @@ class DialogServiceImp implements DialogService {
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
if (message != null) (message).toText16(isBold: false, color: AppColors.textColor), if (message != null) (message).toText16(isBold: false, color: AppColors.textColor),
SizedBox(height: 24.h), // SizedBox(height: 24.h),
FamilyCards( FamilyCards(
profiles: profiles, profiles: profiles,
onSelect: (FamilyFileResponseModelLists profile) { onSelect: (FamilyFileResponseModelLists profile) {
@ -190,6 +190,7 @@ class DialogServiceImp implements DialogService {
}) })
], ],
), ),
useSafeArea: true,
callBackFunc: () {}); callBackFunc: () {});
} }

@ -8,7 +8,7 @@ class AppColors {
static const transparent = Colors.transparent; static const transparent = Colors.transparent;
// Scaffold / Background // Scaffold / Background
static Color get scaffoldBgColor => isDarkMode ? dark.scaffoldBgColor : const Color(0xFFF8F8F8); static Color get scaffoldBgColor => isDarkMode ? dark.scaffoldBgColor : const Color(0xFFF0F0F0);
static Color get bottomSheetBgColor => isDarkMode ? dark.bottomSheetBgColor : const Color(0xFFF8F8FA); static Color get bottomSheetBgColor => isDarkMode ? dark.bottomSheetBgColor : const Color(0xFFF8F8FA);
static Color get lightGreyEFColor => isDarkMode ? dark.lightGreyEFColor : const Color(0xffeaeaff); static Color get lightGreyEFColor => isDarkMode ? dark.lightGreyEFColor : const Color(0xffeaeaff);
static Color get greyF7Color => isDarkMode ? dark.greyF7Color : const Color(0xffF7F7F7); static Color get greyF7Color => isDarkMode ? dark.greyF7Color : const Color(0xffF7F7F7);

Loading…
Cancel
Save