diff --git a/assets/icons/ic_edit.svg b/assets/icons/ic_edit.svg
new file mode 100644
index 0000000..f99c722
--- /dev/null
+++ b/assets/icons/ic_edit.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart
index 972c57c..1e040cd 100644
--- a/lib/classes/consts.dart
+++ b/lib/classes/consts.dart
@@ -100,7 +100,7 @@ class MyAssets {
static String bcIntro = "${assetPath}images/bc_intro.svg";
static String bnLogo = "${assetPath}images/bn_logo.svg";
static String icCar = "${assetPath}images/ic_car.svg";
- static String icEdit = "${assetPath}images/ic_edit.svg";
+ static String icEdit = "${assetPath}icons/ic_edit.svg";
static String icEmail = "${assetPath}images/ic_email.svg";
static String icLock = "${assetPath}images/ic_lock.svg";
static String icLogout = "${assetPath}images/ic_logout.svg";
diff --git a/lib/extensions/string_extensions.dart b/lib/extensions/string_extensions.dart
index ac17df6..f899df1 100644
--- a/lib/extensions/string_extensions.dart
+++ b/lib/extensions/string_extensions.dart
@@ -1,13 +1,23 @@
-
import 'package:flutter/cupertino.dart';
import 'package:intl/intl.dart';
import 'package:mc_common_app/theme/colors.dart';
+import 'package:auto_size_text/auto_size_text.dart';
extension EmailValidator on String {
- Widget toText({Color? color, bool isBold = false, double? fontSize, bool isUnderLine = false, TextDecoration? textDecoration, double letterSpacing = -0.4, TextAlign? textAlign, double? height}) =>
- Text(
+ Widget toText(
+ {Color? color,
+ bool isBold = false,
+ double? fontSize,
+ bool isUnderLine = false,
+ TextDecoration? textDecoration,
+ double letterSpacing = -0.4,
+ TextAlign? textAlign,
+ double? height,
+ int? maxLines}) =>
+ AutoSizeText(
this,
textAlign: textAlign,
+ maxLines: maxLines,
style: TextStyle(
height: height,
decoration: isUnderLine ? TextDecoration.underline : textDecoration ?? TextDecoration.none,
@@ -18,7 +28,6 @@ extension EmailValidator on String {
),
);
-
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/theme/colors.dart b/lib/theme/colors.dart
index b48a406..8eb2538 100644
--- a/lib/theme/colors.dart
+++ b/lib/theme/colors.dart
@@ -6,10 +6,10 @@ class MyColors {
static const Color accentColor = Colors.blue;
static const Color lightTextColor = Color(0xff969696);
static const Color textColor = Color(0xff777777);
+ static const Color darkTextColor = Color(0xff28323A);
static const Color textFieldColor = Color(0xffF3F5F7);
static const Color darkIconColor = Color(0xff28323A);
static const Color lightIconColor = Color(0xff767676);
- static const Color darkTextColor = Color(0xff2B353E);
static const Color normalTextColor = Color(0xff5A5A5A);
static const Color gradiantStartColor = Color(0xff33c0a5);
static const Color gradiantEndColor = Color(0xff259db7);
diff --git a/lib/views/user/change_email_page.dart b/lib/views/user/change_email_page.dart
index ad85777..7eee14a 100644
--- a/lib/views/user/change_email_page.dart
+++ b/lib/views/user/change_email_page.dart
@@ -3,7 +3,7 @@ import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
diff --git a/lib/views/user/change_mobile_page.dart b/lib/views/user/change_mobile_page.dart
index 3c66c81..06cd26a 100644
--- a/lib/views/user/change_mobile_page.dart
+++ b/lib/views/user/change_mobile_page.dart
@@ -3,7 +3,7 @@ import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
diff --git a/lib/views/user/change_password_page.dart b/lib/views/user/change_password_page.dart
index 9709867..45c8223 100644
--- a/lib/views/user/change_password_page.dart
+++ b/lib/views/user/change_password_page.dart
@@ -3,7 +3,7 @@ import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
diff --git a/lib/views/user/complete_profile_page.dart b/lib/views/user/complete_profile_page.dart
index 562c7d6..af11e10 100644
--- a/lib/views/user/complete_profile_page.dart
+++ b/lib/views/user/complete_profile_page.dart
@@ -5,7 +5,7 @@ import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/user/register_user.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
diff --git a/lib/views/user/confirm_new_password.dart b/lib/views/user/confirm_new_password.dart
index ef5a754..b676e45 100644
--- a/lib/views/user/confirm_new_password.dart
+++ b/lib/views/user/confirm_new_password.dart
@@ -4,7 +4,7 @@ import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
diff --git a/lib/views/user/confirm_new_password_page.dart b/lib/views/user/confirm_new_password_page.dart
index ac3287f..94032a6 100644
--- a/lib/views/user/confirm_new_password_page.dart
+++ b/lib/views/user/confirm_new_password_page.dart
@@ -4,7 +4,7 @@ import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -26,7 +26,7 @@ class _ConfirmNewPasswordPageState extends State {
Widget build(BuildContext context) {
UserVM userVM = context.read();
return Scaffold(
- appBar: CustomAppBar( isRemoveBackButton: true, title: LocaleKeys.forgetPassword.tr()),
+ appBar: CustomAppBar(isRemoveBackButton: true, title: LocaleKeys.forgetPassword.tr()),
body: SingleChildScrollView(
child: Container(
// width: double.infinity,
@@ -34,7 +34,11 @@ class _ConfirmNewPasswordPageState extends State {
padding: const EdgeInsets.all(40),
child: Column(
children: [
- LocaleKeys.newPassword.tr().toText(height: 23 / 24, fontSize: 24, letterSpacing: -1.44,),
+ LocaleKeys.newPassword.tr().toText(
+ height: 23 / 24,
+ fontSize: 24,
+ letterSpacing: -1.44,
+ ),
12.height,
TextFormField(
decoration: InputDecoration(
diff --git a/lib/views/user/forget_password_page.dart b/lib/views/user/forget_password_page.dart
index fedc92d..8bb9a7a 100644
--- a/lib/views/user/forget_password_page.dart
+++ b/lib/views/user/forget_password_page.dart
@@ -8,7 +8,7 @@ import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/tab/login_email_tab.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart';
diff --git a/lib/views/user/login_with_password_page.dart b/lib/views/user/login_with_password_page.dart
index 5701025..0009ed9 100644
--- a/lib/views/user/login_with_password_page.dart
+++ b/lib/views/user/login_with_password_page.dart
@@ -10,7 +10,7 @@ import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:mc_common_app/widgets/tab/login_email_tab.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:easy_localization/easy_localization.dart';
diff --git a/lib/views/user/register_page.dart b/lib/views/user/register_page.dart
index 74f0286..25411cf 100644
--- a/lib/views/user/register_page.dart
+++ b/lib/views/user/register_page.dart
@@ -6,7 +6,7 @@ import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
diff --git a/lib/views/user/register_provider_page.dart b/lib/views/user/register_provider_page.dart
index 9dbb229..4a416fa 100644
--- a/lib/views/user/register_provider_page.dart
+++ b/lib/views/user/register_provider_page.dart
@@ -10,7 +10,7 @@ import 'package:mc_common_app/view_models/user_view_model.dart';
import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/widgets/tab/role_type_tab.dart';
diff --git a/lib/views/user/register_selection_page.dart b/lib/views/user/register_selection_page.dart
index 7716fd5..b819294 100644
--- a/lib/views/user/register_selection_page.dart
+++ b/lib/views/user/register_selection_page.dart
@@ -8,7 +8,7 @@ import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/utils.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
diff --git a/lib/widgets/show_card_buttton.dart b/lib/widgets/button/show_card_buttton.dart
similarity index 90%
rename from lib/widgets/show_card_buttton.dart
rename to lib/widgets/button/show_card_buttton.dart
index 34be3bd..14e9d70 100644
--- a/lib/widgets/show_card_buttton.dart
+++ b/lib/widgets/button/show_card_buttton.dart
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
class ShowCardButton extends StatelessWidget {
String title;
diff --git a/lib/widgets/show_fill_button.dart b/lib/widgets/button/show_fill_button.dart
similarity index 71%
rename from lib/widgets/show_fill_button.dart
rename to lib/widgets/button/show_fill_button.dart
index b391be7..13cd8de 100644
--- a/lib/widgets/show_fill_button.dart
+++ b/lib/widgets/button/show_fill_button.dart
@@ -1,8 +1,7 @@
-
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
-import '../theme/colors.dart';
+import '../../theme/colors.dart';
class ShowFillButton extends StatelessWidget {
String title;
@@ -10,6 +9,7 @@ class ShowFillButton extends StatelessWidget {
Color txtColor;
double elevation, radius, maxWidth, maxHeight, fontSize, horizontalPadding, horizontalMargin, verticalMargin;
bool isFlatButton, isBold;
+ EdgeInsets? margin;
ShowFillButton({
required this.title,
@@ -25,6 +25,7 @@ class ShowFillButton extends StatelessWidget {
this.isBold = true,
this.horizontalMargin = 0,
this.verticalMargin = 0,
+ this.margin,
});
@override
@@ -38,31 +39,35 @@ class ShowFillButton extends StatelessWidget {
right: 20,
),
)
- : ConstrainedBox(
- constraints: BoxConstraints(
- minHeight: maxHeight,
- minWidth: maxWidth,
- maxHeight: maxHeight,
- maxWidth: maxWidth,
+ : Padding(
+ padding: margin ?? const EdgeInsets.all(0.0),
+ child: ConstrainedBox(
+ constraints: BoxConstraints(
+ minHeight: maxHeight,
+ minWidth: maxWidth,
+ maxHeight: maxHeight,
+ maxWidth: maxWidth,
+ ),
+ child: showButton(),
),
- child: showButton(),
);
}
Widget showButton() {
return Container(
// decoration: isFlatButton ? null : MyColors.gradientButton,
- color:isFlatButton ? null : MyColors.darkPrimaryColor,
+ color: isFlatButton ? null : MyColors.darkPrimaryColor,
margin: EdgeInsets.symmetric(horizontal: horizontalMargin, vertical: verticalMargin),
child: MaterialButton(
onPressed: onPressed,
- shape: new RoundedRectangleBorder(
- borderRadius: new BorderRadius.circular(radius),
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(radius),
),
child: title.toText(
fontSize: fontSize,
isBold: isBold,
color: txtColor,
+ maxLines: 1,
),
),
);
diff --git a/lib/widgets/common_widgets/ad_widget.dart b/lib/widgets/common_widgets/ad_widget.dart
index 07677ea..208789d 100644
--- a/lib/widgets/common_widgets/ad_widget.dart
+++ b/lib/widgets/common_widgets/ad_widget.dart
@@ -1,4 +1,3 @@
-
import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
diff --git a/lib/widgets/common_widgets/app_bar.dart b/lib/widgets/common_widgets/app_bar.dart
index bb41f49..ed766ac 100644
--- a/lib/widgets/common_widgets/app_bar.dart
+++ b/lib/widgets/common_widgets/app_bar.dart
@@ -72,6 +72,7 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
final String profileImageUrl;
final bool isDrawerEnabled;
final VoidCallback? onTap;
+ final double? leadingWidth;
const CustomAppBar({
Key? key,
@@ -86,45 +87,72 @@ class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
this.isTitleCenter,
this.titleColor,
this.onTap,
+ this.leadingWidth,
}) : super(key: key);
@override
Widget build(BuildContext context) {
- return AppBar(
- leadingWidth: 100,
- backgroundColor: backgroundColor ?? appBackgroundColor,
- elevation: elevation ?? 0,
- centerTitle: isTitleCenter ?? true,
- leading: isDrawerEnabled
- ? InkWell(
- onTap: onTap,
- child: Row(
- children: [
- Image.asset(
- profileImageUrl,
- width: 34,
- height: 34,
- fit: BoxFit.fill,
- ).toCircle(borderRadius: 100),
- 10.width,
- SvgPicture.asset(MyAssets.dashboardDrawerIcon),
- ],
- ).paddingOnly(left: 21),
- )
- : isRemoveBackButton
- ? null
- : IconButton(
- icon: const Icon(Icons.arrow_back_ios, color: Colors.black),
- onPressed: () => Navigator.of(context).pop(),
- ),
- iconTheme: IconThemeData(
- color: backIconColor ?? Colors.black, //change your color here
- ),
- actions: actions,
- title: (title ?? "").toText(fontSize: 20, isBold: true),
+ return Column(
+ children: [
+ AppBar(
+ leadingWidth: leadingWidth??61,
+ backgroundColor: backgroundColor ?? Colors.white,
+ elevation: elevation ?? 0,
+ centerTitle: isTitleCenter ?? true,
+ leading: isDrawerEnabled
+ ? InkWell(
+ onTap: onTap,
+ child: Row(
+ children: [
+ Image.asset(
+ profileImageUrl,
+ width: 34,
+ height: 34,
+ fit: BoxFit.fill,
+ ).toCircle(borderRadius: 100),
+ 10.width,
+ SvgPicture.asset(MyAssets.dashboardDrawerIcon),
+ ],
+ ).paddingOnly(left: 21),
+ )
+ : isRemoveBackButton
+ ? null
+ : Row(
+ children: [
+ 21.width,
+ IconButton(
+ icon: const Icon(
+ Icons.arrow_back_ios,
+ color: Colors.black,
+ size: 16,
+ ),
+ onPressed: () => onTap??Navigator.of(context).pop(),
+ ).toContainer(
+ paddingAll: 0,
+ borderRadius: 100,
+ borderColor: MyColors.lightGreyEFColor,
+ isEnabledBorder: true,
+ height: 40,
+ width: 40,
+ ),
+ ],
+ ),
+ iconTheme: IconThemeData(
+ color: backIconColor ?? Colors.black, //change your color here
+ ),
+ actions: actions,
+ title: (title ?? "").toText(fontSize: 20, isBold: true),
+ ),
+ if (backgroundColor == null)
+ const Divider(
+ thickness: 1,
+ color: MyColors.lightGreyEFColor,
+ height: 1,
+ )
+ ],
);
}
@override
- Size get preferredSize => const Size.fromHeight(55);
+ Size get preferredSize => const Size.fromHeight(60);
}
diff --git a/lib/widgets/dialog/message_dialog.dart b/lib/widgets/dialog/message_dialog.dart
index f25c700..5612b9c 100644
--- a/lib/widgets/dialog/message_dialog.dart
+++ b/lib/widgets/dialog/message_dialog.dart
@@ -2,7 +2,7 @@
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
class MessageDialog extends StatelessWidget {
String? title, buttonTitle;
diff --git a/lib/widgets/dialog/otp_dialog.dart b/lib/widgets/dialog/otp_dialog.dart
index 9a4f898..6f1da1a 100644
--- a/lib/widgets/dialog/otp_dialog.dart
+++ b/lib/widgets/dialog/otp_dialog.dart
@@ -6,7 +6,7 @@ import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/widgets/count_down_timer.dart';
-import 'package:mc_common_app/widgets/show_fill_button.dart';
+import 'package:mc_common_app/widgets/button/show_fill_button.dart';
import '../otp_widget.dart';
diff --git a/lib/widgets/extensions/extensions_widget.dart b/lib/widgets/extensions/extensions_widget.dart
index 4cfcd1b..3473834 100644
--- a/lib/widgets/extensions/extensions_widget.dart
+++ b/lib/widgets/extensions/extensions_widget.dart
@@ -6,7 +6,6 @@ import 'package:mc_common_app/theme/colors.dart';
import 'package:provider/provider.dart';
extension ExtendedText on Widget {
-
showOverlay({double? width, double? height}) {
return Container(
width: width ?? double.infinity,
@@ -24,21 +23,25 @@ extension ExtendedText on Widget {
}
extension ContainerExt on Widget {
- Widget toWhiteContainer({required double width, required double allPading}) {
- return Container(
- decoration: const BoxDecoration(
- color: MyColors.white,
- boxShadow: [
- BoxShadow(
- blurRadius: 8,
- spreadRadius: 3,
- offset: Offset(0, 3),
- color: MyColors.greyShadowColor,
- ),
- ],
+ Widget toWhiteContainer({required double width, required double allPading, EdgeInsets? margin, VoidCallback? onTap}) {
+ return InkWell(
+ onTap: onTap,
+ child: Container(
+ decoration: const BoxDecoration(
+ color: MyColors.white,
+ boxShadow: [
+ BoxShadow(
+ blurRadius: 8,
+ spreadRadius: 3,
+ offset: Offset(0, 3),
+ color: MyColors.greyShadowColor,
+ ),
+ ],
+ ),
+ padding: EdgeInsets.all(allPading),
+ margin: margin,
+ child: this,
),
- padding: EdgeInsets.all(allPading),
- child: this,
);
}
@@ -50,31 +53,39 @@ extension ContainerExt on Widget {
// );
// }
- Widget toContainer({double borderRadius = 8,
+ Widget toContainer({
+ double borderRadius = 8,
double paddingAll = 10,
double marginAll = 0,
EdgeInsetsGeometry? margin,
EdgeInsetsGeometry? padding,
Color backgroundColor = Colors.white,
bool isShadowEnabled = false,
- double? width}) =>
+ bool isEnabledBorder = false,
+ Color borderColor = Colors.black,
+ double borderWidget = 1,
+ double? width,
+ double? height,
+ }) =>
Container(
decoration: BoxDecoration(
color: backgroundColor,
borderRadius: BorderRadius.circular(borderRadius),
+ border: !isEnabledBorder ? null : Border.all(color: borderColor, width: borderWidget),
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),
width: width,
+ height: height,
child: this,
);
}
@@ -200,7 +211,6 @@ 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);
@@ -328,5 +338,4 @@ extension LocaleSetup on MultiProvider {
extension WidgetExtensions on Widget {
Widget onPress(VoidCallback onTap) => InkWell(onTap: onTap, child: this);
-
}
diff --git a/lib/widgets/tab/menu_tabs.dart b/lib/widgets/tab/menu_tabs.dart
new file mode 100644
index 0000000..2a38bef
--- /dev/null
+++ b/lib/widgets/tab/menu_tabs.dart
@@ -0,0 +1,64 @@
+import 'package:flutter/material.dart';
+import 'package:mc_common_app/extensions/int_extensions.dart';
+import 'package:mc_common_app/theme/colors.dart';
+import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
+
+class MenuTabs extends StatefulWidget {
+ int selectedIndex;
+ List dropList;
+ Function(DropValue value) onSelect;
+ Color? selectedColor;
+
+
+ MenuTabs(this.selectedIndex, this.dropList, {required this.onSelect, this.selectedColor});
+
+ @override
+ State createState() => _RoleTypeTabState();
+}
+
+class _RoleTypeTabState extends State {
+ @override
+ Widget build(BuildContext context) {
+ return SizedBox(
+ width: double.infinity,
+ height: 35,
+ child: ListView.separated(
+ itemBuilder: (context, index) {
+ return InkWell(
+ onTap: () {
+ setState(() {
+ widget.selectedIndex = index;
+ widget.onSelect(widget.dropList[index]);
+ });
+ },
+ child: Container(
+ height: 45,
+ decoration: BoxDecoration(
+ color: widget.selectedIndex == index ? widget.selectedColor ?? MyColors.darkIconColor : Colors.white,
+ border: Border.all(color: widget.selectedIndex == index ? widget.selectedColor ?? MyColors.darkIconColor : MyColors.darkPrimaryColor, width: 1.5),
+ borderRadius: const BorderRadius.all(Radius.circular(0)),
+ ),
+ padding: const EdgeInsets.symmetric(horizontal: 20),
+ child: Center(
+ child: Text(
+ widget.dropList[index].value,
+ style: TextStyle(
+ color: widget.selectedIndex == index ? MyColors.white : Colors.black,
+ fontSize: 12,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ),
+ ),
+ );
+ },
+ separatorBuilder: (context, index) {
+ return 12.width;
+ },
+ padding: const EdgeInsets.symmetric(horizontal: 21),
+ itemCount: widget.dropList.length,
+ scrollDirection: Axis.horizontal,
+ ),
+ );
+ }
+}