diff --git a/assets/icons/ic_arrow_right.svg b/assets/icons/ic_arrow_right.svg
new file mode 100644
index 0000000..f71c9bb
--- /dev/null
+++ b/assets/icons/ic_arrow_right.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index c4069ae..13b80c8 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -590,6 +590,7 @@
"noProvidersInFav": "ليس لديك أي مقدمي خدمات في المفضلة.",
"providerHasNoBranches": "هذا المزود ليس لديه فروع حتى الآن.",
"totalBranches": "إجمالي الفروع",
- "memberSince": "عضو منذ"
+ "memberSince": "عضو منذ",
+ "reserved": "محجوز"
}
\ No newline at end of file
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index 87cbe08..6065412 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -411,7 +411,7 @@
"select": "Select",
"deleteAdConfirmation": "Do you want to delete the ad?",
"deleteAdConfirmationMessage": "Your ad will be permanently deleted and you cannot undo this action",
- "mileage": "mileage",
+ "mileage": "Mileage",
"transmission": "Transmission",
"demand": "Demand",
"adDurationExpired": "Your Ad Duration time is over",
@@ -591,5 +591,7 @@
"noProvidersInFav": "You have no providers in Favourites.",
"providerHasNoBranches": "This Provider has no branches yet.",
"totalBranches": "Total Branches",
- "memberSince": "Member Since"
+ "memberSince": "Member Since",
+ "reserved": "Reserved"
+
}
\ No newline at end of file
diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart
index c181aa1..753620b 100644
--- a/lib/classes/consts.dart
+++ b/lib/classes/consts.dart
@@ -285,6 +285,7 @@ class MyAssets {
static String visaPng = "${assetPath}icons/payments/visa.png";
static String whatsAppIcon = "${assetPath}icons/whatsapp_icon.svg";
+ static String arrowRight = "${assetPath}icons/ic_arrow_right.svg";
}
RegExp numReg = RegExp(r".*[0-9].*");
@@ -300,8 +301,8 @@ class MyLocales {
}
class MyFonts {
- static const poppinsFont = 'Poppins';
- static const gessTwoFont = 'GessTwo';
+ static const poppinsFont = 'packages/mc_common_app/Poppins';
+ static const gessTwoFont = 'packages/mc_common_app/GessTwo';
static const FontWeight Thin = FontWeight.w100;
static const FontWeight ExtraLight = FontWeight.w200;
diff --git a/lib/extensions/string_extensions.dart b/lib/extensions/string_extensions.dart
index dada9e5..cd08596 100644
--- a/lib/extensions/string_extensions.dart
+++ b/lib/extensions/string_extensions.dart
@@ -1,41 +1,46 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
+import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/enums.dart';
extension EmailValidator on String {
Widget toText(
- {Color? color,
- bool isBold = false,
- double? fontSize,
- bool isUnderLine = false,
- bool isItalic = false,
- TextDecoration? textDecoration,
- double letterSpacing = 0,
- TextAlign? textAlign,
- FontWeight? fontWeight,
- double? height,
- Color? decorationColor,
- TextOverflow? overflow,
- int? maxLines}) =>
- AutoSizeText(
- this,
- textAlign: textAlign,
- maxLines: maxLines,
- style: TextStyle(
- overflow: overflow,
- fontStyle: isItalic ? FontStyle.italic : null,
- height: height,
- decoration: isUnderLine ? TextDecoration.underline : textDecoration ?? TextDecoration.none,
- decorationColor: decorationColor,
- fontSize: fontSize ?? 10,
- fontWeight: isBold ? FontWeight.bold : fontWeight ?? MyFonts.SemiBold,
- color: color ?? MyColors.darkTextColor,
- letterSpacing: letterSpacing,
- ),
- );
+ {Color? color,
+ bool isBold = false,
+ double? fontSize,
+ bool isUnderLine = false,
+ bool isItalic = false,
+ TextDecoration? textDecoration,
+ double letterSpacing = 0,
+ TextAlign? textAlign,
+ FontWeight? fontWeight,
+ double? height,
+ Color? decorationColor,
+ TextOverflow? overflow,
+ bool isUpperCase = false,
+ int? maxLines}) {
+ bool isArabic = AppState().postParamsObject!.languageID == 1; // arabic -> 1 , English -> 2
+ return AutoSizeText(
+ isUpperCase ? this.toUpperCase() : this,
+ textAlign: textAlign,
+ maxLines: maxLines,
+ style: TextStyle(
+ overflow: overflow,
+ fontStyle: isItalic ? FontStyle.italic : null,
+ height: height,
+ decoration: isUnderLine ? TextDecoration.underline : textDecoration ?? TextDecoration.none,
+ decorationColor: decorationColor ?? MyColors.provTextColor,
+ fontSize: fontSize ?? 10,
+ fontFamily: isArabic ? MyFonts.gessTwoFont : MyFonts.poppinsFont,
+ fontWeight: isBold ? FontWeight.bold : fontWeight ?? MyFonts.SemiBold,
+ color: color ?? MyColors.darkTextColor,
+ letterSpacing: letterSpacing,
+ ),
+ );
+ }
bool isValidEmail() {
return RegExp(r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$').hasMatch(this);
diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart
index 069ffe0..117ea84 100644
--- a/lib/generated/codegen_loader.g.dart
+++ b/lib/generated/codegen_loader.g.dart
@@ -606,7 +606,8 @@ class CodegenLoader extends AssetLoader{
"noProvidersInFav": "ليس لديك أي مقدمي خدمات في المفضلة.",
"providerHasNoBranches": "هذا المزود ليس لديه فروع حتى الآن.",
"totalBranches": "إجمالي الفروع",
- "memberSince": "عضو منذ"
+ "memberSince": "عضو منذ",
+ "reserved": "محجوز"
};
static const Map en_US = {
"firstTimeLogIn": "First Time Log In",
@@ -1021,7 +1022,7 @@ static const Map en_US = {
"select": "Select",
"deleteAdConfirmation": "Do you want to delete the ad?",
"deleteAdConfirmationMessage": "Your ad will be permanently deleted and you cannot undo this action",
- "mileage": "mileage",
+ "mileage": "Mileage",
"transmission": "Transmission",
"demand": "Demand",
"adDurationExpired": "Your Ad Duration time is over",
@@ -1201,7 +1202,8 @@ static const Map en_US = {
"noProvidersInFav": "You have no providers in Favourites.",
"providerHasNoBranches": "This Provider has no branches yet.",
"totalBranches": "Total Branches",
- "memberSince": "Member Since"
+ "memberSince": "Member Since",
+ "reserved": "Reserved"
};
static const Map> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
}
diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart
index 19f32f9..3c40bd9 100644
--- a/lib/generated/locale_keys.g.dart
+++ b/lib/generated/locale_keys.g.dart
@@ -570,5 +570,6 @@ abstract class LocaleKeys {
static const providerHasNoBranches = 'providerHasNoBranches';
static const totalBranches = 'totalBranches';
static const memberSince = 'memberSince';
+ static const reserved = 'reserved';
}
diff --git a/lib/models/provider_branches_models/branch_detail_model.dart b/lib/models/provider_branches_models/branch_detail_model.dart
index edb4af9..01fe4b5 100644
--- a/lib/models/provider_branches_models/branch_detail_model.dart
+++ b/lib/models/provider_branches_models/branch_detail_model.dart
@@ -89,7 +89,12 @@ class BranchDetailModel {
}
BranchDetailModel.fromJson(Map json) {
- List images = populateBranchImages(json["serviceProviderBranchImage"]);
+ List images = [];
+ if (json.containsKey('serviceProviderBranchImage')) {
+ images = populateBranchImages(json["serviceProviderBranchImage"]);
+ } else {
+ images = populateBranchImages(json["branchImages"]);
+ }
id = json["id"];
serviceProviderId = json["serviceProviderID"];
branchProfileImage = images.isNotEmpty ? images.first.imageUrl ?? "" : null;
diff --git a/lib/theme/app_theme.dart b/lib/theme/app_theme.dart
index ed0cf6a..be8c968 100644
--- a/lib/theme/app_theme.dart
+++ b/lib/theme/app_theme.dart
@@ -9,8 +9,8 @@ class AppTheme {
fontFamily: !isArabic ? MyFonts.poppinsFont : MyFonts.gessTwoFont,
primaryColor: primaryColor,
useMaterial3: false,
- primaryTextTheme: const TextTheme(
- titleLarge: TextStyle(color: Colors.white),
+ primaryTextTheme: TextTheme(
+ titleLarge: TextStyle(color: Colors.white, fontFamily: !isArabic ? MyFonts.poppinsFont : MyFonts.gessTwoFont,)
),
colorScheme: ColorScheme.fromSwatch(primarySwatch: Colors.orange).copyWith(surface: Colors.white),
);
diff --git a/lib/theme/colors.dart b/lib/theme/colors.dart
index df56c72..872d41a 100644
--- a/lib/theme/colors.dart
+++ b/lib/theme/colors.dart
@@ -40,6 +40,9 @@ class MyColors {
static const Color greyAddBorderColor = Color(0xffEEEEEE);
static const Color lightGreyBgColor = Color(0xffFDFDFD);
static const Color lightGreyDDColor = Color(0xffDDDDDD);
+ static const Color greyColor = Color(0xff787878);
+
+ static const Color provTextColor = Color(0xFF28323A);
//AdStatusColors:
static const Color adActiveStatusColor = Color(0xff5FC16A);
diff --git a/lib/view_models/user_view_model.dart b/lib/view_models/user_view_model.dart
index 3605bf0..d8e9a15 100644
--- a/lib/view_models/user_view_model.dart
+++ b/lib/view_models/user_view_model.dart
@@ -651,12 +651,13 @@ class UserVM extends BaseVM {
}
void changeLanguage(BuildContext context) {
+ print("${EasyLocalization.of(context)?.currentLocale}");
if (EasyLocalization.of(context)?.currentLocale?.countryCode == "SA") {
context.setLocale(const Locale("en", "US"));
} else {
context.setLocale(const Locale('ar', 'SA'));
}
- notifyListeners();
+ // notifyListeners();
}
void logout(BuildContext context) async {
diff --git a/lib/views/advertisement/components/ads_list_widget.dart b/lib/views/advertisement/components/ads_list_widget.dart
index 0c10f18..7e2fafe 100644
--- a/lib/views/advertisement/components/ads_list_widget.dart
+++ b/lib/views/advertisement/components/ads_list_widget.dart
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
@@ -74,13 +75,13 @@ class AdCard extends StatelessWidget {
adDetails.vehicle!.image == null || adDetails.vehicle!.image!.isEmpty ? "" : adDetails.vehicle!.image!.first.imageUrl!,
errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
return const SizedBox(
- width: 80,
- height: 80,
+ width: 77,
+ height: 83,
child: Icon(Icons.error_outline),
);
},
- width: 80,
- height: 80,
+ width: 77,
+ height: 83,
fit: BoxFit.cover,
),
12.width,
@@ -97,26 +98,30 @@ class AdCard extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
- if (isAdsFragment && !context.read().isExploreAdsTapped) ...[
+ if (isAdsFragment && !context
+ .read()
+ .isExploreAdsTapped) ...[
Utils.statusContainerChip(text: adDetails.statuslabel!, chipColor: Utils.getChipColorByAdStatus(adDetails.adPostStatus!)),
],
- (adDetails.vehicle!.vehicleTitle ?? "").toText(fontSize: 16, isBold: true),
+ (adDetails.vehicle!.vehicleTitle ?? "").toText(fontSize: 16, letterSpacing: -0.64, height: 25 / 16,),
Row(
children: [
("${LocaleKeys.model.tr()}:").toText(
color: MyColors.lightTextColor,
+ letterSpacing: -0.48, height: 18 / 12,
),
2.width,
- (adDetails.vehicle!.modelyear!.label ?? "").toText(),
+ (adDetails.vehicle!.modelyear!.label ?? "").toText(fontSize: 12, letterSpacing: -0.48, height: 18 / 12,),
],
),
Row(
children: [
("${LocaleKeys.mileage.tr()}:").toText(
color: MyColors.lightTextColor,
+ fontSize: 12, letterSpacing: -0.48, height: 18 / 12,
),
2.width,
- (adDetails.vehicle!.mileage!.mileageEnd ?? "").toText(),
+ (adDetails.vehicle!.mileage!.mileageEnd ?? "").toText(fontSize: 12, letterSpacing: -0.48, height: 18 / 12,),
],
),
],
@@ -131,8 +136,8 @@ class AdCard extends StatelessWidget {
),
adDetails.createdOn != null
? DateTime.parse(adDetails.createdOn!).getTimeAgo().toText(
- color: MyColors.lightTextColor,
- )
+ color: MyColors.lightTextColor,
+ )
: const SizedBox(),
],
),
@@ -146,15 +151,24 @@ class AdCard extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
- (adDetails.vehicle!.demandAmount!.toInt().toString()).toText(fontSize: 16, isBold: true),
+ (adDetails.vehicle!.demandAmount!.toInt().toString()).toText(fontSize: 19, isBold: true, letterSpacing: -1.16, height: 29/19),
2.width,
LocaleKeys.sar.tr().toText(
- color: MyColors.lightTextColor,
- ),
+ color: MyColors.lightTextColor,
+ fontSize: 10,
+ letterSpacing: -0.4,height: 16/10
+ ),
],
),
),
- const Icon(Icons.arrow_forward)
+ SvgPicture.asset(
+ MyAssets.arrowRight,
+ height: 9.69,
+ width: 13,
+ ),
+
+
+ // const Icon(Icons.arrow_forward)
],
),
],
diff --git a/lib/views/appointments/widgets/common_appointment_slider_widget.dart b/lib/views/appointments/widgets/common_appointment_slider_widget.dart
index b29d45b..689112d 100644
--- a/lib/views/appointments/widgets/common_appointment_slider_widget.dart
+++ b/lib/views/appointments/widgets/common_appointment_slider_widget.dart
@@ -17,6 +17,7 @@ import 'package:mc_common_app/view_models/dashboard_view_model_customer.dart';
import 'package:mc_common_app/widgets/common_widgets/custom_add_button_widget.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
+import 'package:sizer/sizer.dart';
class CommonAppointmentSliderWidget extends StatelessWidget {
final Function(AppointmentListModel)? onAppointmentClick;
@@ -26,14 +27,14 @@ class CommonAppointmentSliderWidget extends StatelessWidget {
Widget getCarouselSliderWidget(AppType appType, AppointmentsVM appointmentsVM) {
return CarouselSlider.builder(
options: CarouselOptions(
- height: appType == AppType.provider ? 110 : 140,
- viewportFraction: 1.0,
+ height: appType == AppType.provider ? 121 : 140,
+ viewportFraction: 0.99999, // Todo: Dont do anything
enlargeCenterPage: false,
enableInfiniteScroll: false,
),
itemCount: appointmentsVM.myUpComingAppointments.length,
itemBuilder: (BuildContext context, int itemIndex, int pageViewIndex) => BuildAppointmentContainerForCustomer(
- isForHome: appType == AppType.provider,
+ isForProvider: appType == AppType.provider,
appointmentListModel: appointmentsVM.myUpComingAppointments[itemIndex],
onTapped: () {
if (appType == AppType.provider) {
@@ -140,11 +141,11 @@ class CommonAppointmentSliderWidget extends StatelessWidget {
}
class BuildAppointmentContainerForCustomer extends StatelessWidget {
- final bool? isForHome;
+ final bool isForProvider;
final AppointmentListModel? appointmentListModel;
final Function()? onTapped;
- const BuildAppointmentContainerForCustomer({Key? key, this.isForHome = false, this.onTapped, required this.appointmentListModel}) : super(key: key);
+ const BuildAppointmentContainerForCustomer({Key? key, this.isForProvider = false, this.onTapped, required this.appointmentListModel}) : super(key: key);
Widget showServices(String title, String icon, {bool isMoreText = false}) {
return Row(
@@ -156,7 +157,7 @@ class BuildAppointmentContainerForCustomer extends StatelessWidget {
Flexible(
child: title.toText(
fontSize: 12,
- isBold: true,
+ letterSpacing: -0.48,
color: isMoreText ? MyColors.primaryColor : MyColors.black,
),
),
@@ -197,78 +198,77 @@ class BuildAppointmentContainerForCustomer extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return Container(
- margin: const EdgeInsets.only(bottom: 10, left: 21, right: 21),
- child: Column(
- children: [
- Row(
+ return Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ isForProvider // need to be updated through backend
+ ? SizedBox()
+ : Image.asset(
+ MyAssets.bnCar,
+ width: 46,
+ height: 46,
+ fit: BoxFit.cover,
+ ),
+ 8.width,
+ Expanded(
+ child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.start,
children: [
- isForHome != null && isForHome!
- ? Image.asset(
- MyAssets.bnCar,
- width: 56,
- height: 56,
- fit: BoxFit.fill,
- ).toCircle(borderRadius: 100)
- : Image.asset(
- MyAssets.bnCar,
- width: 80,
- height: 85,
- fit: BoxFit.cover,
- ),
- 8.width,
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- (AppState().currentAppType == AppType.provider ? appointmentListModel!.customerName ?? "" : appointmentListModel!.branchName ?? "").toText(color: MyColors.black, isBold: true, fontSize: 16),
- Row(
+ (AppState().currentAppType == AppType.provider ? appointmentListModel!.branchName ?? "" : appointmentListModel!.branchName ?? "")
+ .toText(color: MyColors.greyColor, fontSize: 12, letterSpacing: 0, height: 19 / 12),
+ (AppState().currentAppType == AppType.provider ? appointmentListModel!.customerName ?? "" : appointmentListModel!.branchName ?? "")
+ .toText(color: MyColors.black, fontSize: 16, letterSpacing: -0.64, height: 24 / 16),
+ Row(
+ children: [
+ !isForProvider ? MyAssets.miniClock.buildSvg(height: 12) : SizedBox(),
+ 2.width,
+ "${isForProvider ? "Appt. on:" : ""} ${appointmentListModel!.duration ?? ""} ${appointmentListModel!.appointmentDate!.toFormattedDateWithoutTime()}"
+ .toText(color: MyColors.lightTextColor, fontSize: 12, letterSpacing: -0.48, height: 19 / 12),
+ ],
+ ),
+ 8.height,
+ !isForProvider
+ ? Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ crossAxisAlignment: CrossAxisAlignment.end,
children: [
- MyAssets.miniClock.buildSvg(height: 12),
- 2.width,
- "${appointmentListModel!.duration ?? ""} ${appointmentListModel!.appointmentDate!.toFormattedDateWithoutTime()}".toText(
- color: MyColors.lightTextColor,
- fontSize: 12,
+ LocaleKeys.appointment_details.tr().toText(
+ color: MyColors.primaryColor,
+ isUnderLine: true,
+ fontSize: 14,
+ letterSpacing: -0.56,
+ ),
+ SvgPicture.asset(
+ MyAssets.arrowRight,
+ height: 9.69,
+ width: 13,
),
],
- ),
- 9.height,
- isForHome != null && isForHome!
- ? Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- "Appointment Details".toText(
- color: MyColors.primaryColor,
- isUnderLine: true,
- isBold: true,
- fontSize: 14,
- ),
- const Icon(Icons.arrow_forward),
- ],
- )
- : Row(
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- Expanded(
- child: Column(
- children: buildServicesFromAppointment(appointmentListModel: appointmentListModel!),
- ),
- ),
- const Icon(
- Icons.arrow_forward,
- ),
- ],
+ )
+ : Row(
+ crossAxisAlignment: CrossAxisAlignment.end,
+ children: [
+ Expanded(
+ child: Column(
+ children: buildServicesFromAppointment(appointmentListModel: appointmentListModel!),
),
- ],
- ),
- ),
+ ),
+ //ic_arrow_right.svg
+ SvgPicture.asset(
+ MyAssets.arrowRight,
+ height: 9.69,
+ width: 13,
+ ),
+ ],
+ ),
],
),
- ],
- ).onPress(onTapped!).toWhiteContainer(width: double.infinity, allPading: 12),
- );
+ ),
+ ],
+ ).onPress(onTapped!).toWhiteContainer(
+ width: double.infinity,
+ allPading: 12,
+ );
}
}
diff --git a/lib/views/setting_options/setting_options_language.dart b/lib/views/setting_options/setting_options_language.dart
index 2c8f19c..b897b9e 100644
--- a/lib/views/setting_options/setting_options_language.dart
+++ b/lib/views/setting_options/setting_options_language.dart
@@ -17,9 +17,14 @@ import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
-class SettingOptionsLanguage extends StatelessWidget {
+class SettingOptionsLanguage extends StatefulWidget {
const SettingOptionsLanguage({super.key});
+ @override
+ State createState() => _SettingOptionsLanguageState();
+}
+
+class _SettingOptionsLanguageState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -87,6 +92,9 @@ class SettingOptionsLanguage extends StatelessWidget {
isForLanguage: true,
onTap: () {
context.read().changeLanguage(context);
+ Future.delayed(Duration(seconds: 1), () {
+ setState(() {});
+ });
},
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
10.height,
diff --git a/lib/widgets/common_widgets/branch_details_card.dart b/lib/widgets/common_widgets/branch_details_card.dart
index e376714..ffeecee 100644
--- a/lib/widgets/common_widgets/branch_details_card.dart
+++ b/lib/widgets/common_widgets/branch_details_card.dart
@@ -30,6 +30,8 @@ class BranchDetailCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
+ print("Provider Image Title" + title);
+ print("Provider Image URL" + providerImageUrl);
return Padding(
padding: EdgeInsets.zero,
// padding: const EdgeInsets.only(
diff --git a/lib/widgets/common_widgets/view_all_widget.dart b/lib/widgets/common_widgets/view_all_widget.dart
index 724bfaa..368d112 100644
--- a/lib/widgets/common_widgets/view_all_widget.dart
+++ b/lib/widgets/common_widgets/view_all_widget.dart
@@ -17,12 +17,11 @@ class ViewAllWidget extends StatelessWidget {
padding: const EdgeInsets.only(bottom: 7),
child: Row(
children: [
- Expanded(child: title.toText(isBold: true, fontSize: 18)),
+ Expanded(child: title.toText( fontSize: 18, isUpperCase: true)),
InkWell(
onTap: onSubtitleTapped,
child: subTitle.toText(
fontSize: 11,
- isBold: true,
color: MyColors.primaryColor,
textDecoration: TextDecoration.underline,
),
diff --git a/lib/widgets/extensions/extensions_widget.dart b/lib/widgets/extensions/extensions_widget.dart
index afbacea..fec9705 100644
--- a/lib/widgets/extensions/extensions_widget.dart
+++ b/lib/widgets/extensions/extensions_widget.dart
@@ -24,7 +24,8 @@ extension ExtendedText on Widget {
}
extension ContainerExt on Widget {
- Widget toWhiteContainer({required double width, double? allPading, EdgeInsets? pading, EdgeInsets? margin, VoidCallback? onTap, Color? backgroundColor, bool isBorderRequired = false, double borderRadius = 0}) {
+ Widget toWhiteContainer(
+ {required double width, double? allPading, EdgeInsets? pading, EdgeInsets? margin, VoidCallback? onTap, Color? backgroundColor, bool isBorderRequired = false, double borderRadius = 0}) {
return InkWell(
onTap: onTap,
child: Container(
@@ -83,12 +84,12 @@ extension ContainerExt on Widget {
boxShadow: !isShadowEnabled
? null
: [
- BoxShadow(
- color: const Color(0xff000000).withOpacity(.05),
- blurRadius: 26,
- offset: const Offset(0, -3),
- ),
- ],
+ BoxShadow(
+ color: const Color(0xff000000).withOpacity(.05),
+ blurRadius: 26,
+ offset: const Offset(0, -3),
+ ),
+ ],
),
padding: padding ?? EdgeInsets.all(paddingAll),
margin: margin ?? EdgeInsets.all(marginAll),
@@ -233,7 +234,8 @@ extension WidgetExt on Widget {
);
}
- Widget paddingOnly({double left = 0.0, double right = 0.0, double top = 0.0, double bottom = 0.0}) => Padding(padding: EdgeInsets.only(left: left, right: right, top: top, bottom: bottom), child: this);
+ Widget paddingOnly({double left = 0.0, double right = 0.0, double top = 0.0, double bottom = 0.0}) =>
+ Padding(padding: EdgeInsets.only(left: left, right: right, top: top, bottom: bottom), child: this);
// Widget onTap(VoidCallback onTap, {double corners = 0}) {
// return Clickable.widget(child: this, corners: corners, onTap: onTap);
@@ -360,6 +362,9 @@ extension BuildSVG on String? {
return SizedBox(height: height, width: width, child: const Icon(Icons.signal_wifi_connected_no_internet_4_outlined));
},
loadingBuilder: (BuildContext context, Widget? child, ImageChunkEvent? imageChunk) {
+ if (imageChunk == null) {
+ return child!;
+ }
return const Center(
child: CircularProgressIndicator(
strokeWidth: 0.5,
@@ -377,7 +382,12 @@ extension BuildSVG on String? {
extension LocaleSetup on MultiProvider {
Widget setupLocale() {
- return EasyLocalization(supportedLocales: MyLocales.supportedLocales, fallbackLocale: MyLocales.fallBackLocale, startLocale: MyLocales.startLocale, assetLoader: MyLocales.assetLoader, path: MyLocales.localesAssetPath, child: this);
+ return EasyLocalization(supportedLocales: MyLocales.supportedLocales,
+ fallbackLocale: MyLocales.fallBackLocale,
+ startLocale: MyLocales.startLocale,
+ assetLoader: MyLocales.assetLoader,
+ path: MyLocales.localesAssetPath,
+ child: this);
}
}
diff --git a/pubspec.yaml b/pubspec.yaml
index ea99c0b..3711ddf 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -88,49 +88,34 @@ flutter:
fonts:
- asset: assets/fonts/Poppins-Thin.ttf
weight: 100
- style: normal
- asset: assets/fonts/Poppins-ExtraLight.ttf
weight: 200
- style: normal
- asset: assets/fonts/Poppins-Light.ttf
weight: 300
- style: normal
- asset: assets/fonts/Poppins-Regular.ttf
weight: 400
- style: normal
- asset: assets/fonts/Poppins-Medium.ttf
weight: 500
- style: normal
- asset: assets/fonts/Poppins-SemiBold.ttf
weight: 600
- style: normal
- asset: assets/fonts/Poppins-Bold.ttf
weight: 700
- style: normal
- asset: assets/fonts/Poppins-ExtraBold.ttf
weight: 800
- style: normal
- asset: assets/fonts/Poppins-Black.ttf
weight: 900
- style: normal
- asset: assets/fonts/Poppins-Italic.ttf
weight: 400
- style: italic
- asset: assets/fonts/Poppins-MediumItalic.ttf
weight: 500
- style: italic
- asset: assets/fonts/Poppins-SemiBoldItalic.ttf
weight: 600
- style: italic
- asset: assets/fonts/Poppins-BoldItalic.ttf
weight: 700
- style: italic
- asset: assets/fonts/Poppins-ExtraBoldItalic.ttf
weight: 800
- style: italic
- asset: assets/fonts/Poppins-BlackItalic.ttf
weight: 900
- style: italic
- family: GessTwo
fonts:
- asset: assets/fonts/GESS-Two-Light.otf