diff --git a/lib/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart b/lib/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart index b82b60a8f..421149a89 100644 --- a/lib/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart +++ b/lib/features/email/presentation/widgets/bottom_bar_mail_widget_builder.dart @@ -1,118 +1,90 @@ import 'package:core/core.dart'; import 'package:flutter/material.dart'; +import 'package:get/get.dart'; import 'package:model/model.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; typedef OnPressEmailActionClick = void Function(EmailActionType emailActionType); -class BottomBarMailWidgetBuilder { +class BottomBarMailWidgetBuilder extends StatelessWidget { static const double maxWidthBottomBar = 540; - final BuildContext _context; - final ImagePaths _imagePaths; - final ResponsiveUtils _responsiveUtils; - final PresentationEmail? _presentationEmail; + final PresentationEmail _presentationEmail; + final OnPressEmailActionClick? onPressEmailActionClick; - OnPressEmailActionClick? _onPressEmailActionClick; - - BottomBarMailWidgetBuilder( - this._context, - this._imagePaths, - this._responsiveUtils, + const BottomBarMailWidgetBuilder( this._presentationEmail, - ); + { + Key? key, + this.onPressEmailActionClick + } + ) : super(key: key); - void addOnPressEmailAction(OnPressEmailActionClick onPressEmailActionClick) { - _onPressEmailActionClick = onPressEmailActionClick; - } + @override + Widget build(BuildContext context) { + final imagePaths = Get.find(); + final responsiveUtils = Get.find(); - Widget build() { return Container( - key: const Key('bottom_bar_messenger_widget'), alignment: Alignment.center, color: Colors.white, - child: MediaQuery( - data: const MediaQueryData(padding: EdgeInsets.zero), - child: _presentationEmail != null - ? _buildListOptionButton(_presentationEmail!) - : const SizedBox.shrink() + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + if (_presentationEmail.numberOfAllEmailAddress() > 1) + Expanded(child: (ButtonBuilder(imagePaths.icReplyAll) + ..key(const Key('button_reply_all_message')) + ..size(15) + ..radiusSplash(0) + ..padding(const EdgeInsets.only(top: 5, bottom: 8)) + ..textStyle(TextStyle( + fontSize: responsiveUtils.isPortraitMobile(context) ? 12 : 16, + color: AppColor.colorTextButton)) + ..onPressActionClick(() =>onPressEmailActionClick?.call(EmailActionType.replyAll)) + ..text(AppLocalizations.of(context).reply_all, + isVertical: responsiveUtils.isPortraitMobile(context))) + .build()), + Expanded(child: (ButtonBuilder(imagePaths.icReply) + ..key(const Key('button_reply_message')) + ..size(20) + ..radiusSplash(0) + ..padding(const EdgeInsets.only(top: 5, bottom: 8)) + ..textStyle(TextStyle( + fontSize: responsiveUtils.isPortraitMobile(context) ? 12 : 16, + color: AppColor.colorTextButton)) + ..onPressActionClick(() => onPressEmailActionClick?.call(EmailActionType.reply)) + ..text(AppLocalizations.of(context).reply, + isVertical: responsiveUtils.isPortraitMobile(context))) + .build()), + Expanded(child: (ButtonBuilder(imagePaths.icForward) + ..key(const Key('button_forward_message')) + ..size(20) + ..radiusSplash(0) + ..padding(const EdgeInsets.only(top: 5, bottom: 8)) + ..textStyle(TextStyle( + fontSize: responsiveUtils.isPortraitMobile(context) ? 12 : 16, + color: AppColor.colorTextButton)) + ..onPressActionClick(() => onPressEmailActionClick?.call(EmailActionType.forward)) + ..text(AppLocalizations.of(context).forward, + isVertical: responsiveUtils.isPortraitMobile(context))) + .build()), + if (responsiveUtils.mailboxDashboardOnlyHasEmailView(context)) + Expanded(child: (ButtonBuilder(imagePaths.icNewMessage) + ..key(const Key('button_new_message')) + ..size(20) + ..radiusSplash(0) + ..padding(const EdgeInsets.only(top: 5, bottom: 8)) + ..textStyle(TextStyle( + fontSize: responsiveUtils.isPortraitMobile(context) ? 12 : 16, + color: AppColor.colorTextButton)) + ..onPressActionClick(() => onPressEmailActionClick?.call(EmailActionType.compose)) + ..text(AppLocalizations.of(context).new_message, + isVertical: responsiveUtils.isPortraitMobile(context))) + .build()) + ] ) ); } - - Widget _buildListOptionButton(PresentationEmail presentationEmail) { - return Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - if (presentationEmail.numberOfAllEmailAddress() > 1) - Expanded(child: (ButtonBuilder(_imagePaths.icReplyAll) - ..key(const Key('button_reply_all_message')) - ..size(15) - ..paddingIcon(EdgeInsets.only( - top: _responsiveUtils.isMobile(_context) ? 10 : 16, - bottom: _responsiveUtils.isMobile(_context) ? 8 : 16, - right: 5)) - ..textStyle(TextStyle( - fontSize: _responsiveUtils.isMobile(_context) ? 10 : 16, - color: AppColor.colorTextButton)) - ..onPressActionClick(() { - if (_onPressEmailActionClick != null) { - _onPressEmailActionClick!(EmailActionType.replyAll); - }}) - ..text(AppLocalizations.of(_context).reply_all, isVertical: _responsiveUtils.isMobile(_context))) - .build()), - Expanded(child: (ButtonBuilder(_imagePaths.icReply) - ..key(const Key('button_reply_message')) - ..size(20) - ..paddingIcon(EdgeInsets.only( - top: _responsiveUtils.isMobile(_context) ? 10 : 16, - bottom: _responsiveUtils.isMobile(_context) ? 8 : 16, - right: 5)) - ..textStyle(TextStyle( - fontSize: _responsiveUtils.isMobile(_context) ? 10 : 16, - color: AppColor.colorTextButton)) - ..onPressActionClick(() { - if (_onPressEmailActionClick != null) { - _onPressEmailActionClick!(EmailActionType.reply); - }}) - ..text(AppLocalizations.of(_context).reply, isVertical: _responsiveUtils.isMobile(_context))) - .build()), - Expanded(child: (ButtonBuilder(_imagePaths.icForward) - ..key(const Key('button_forward_message')) - ..size(20) - ..paddingIcon(EdgeInsets.only( - top: _responsiveUtils.isMobile(_context) ? 10 : 16, - bottom: _responsiveUtils.isMobile(_context) ? 8 : 16, - right: 5)) - ..textStyle(TextStyle( - fontSize: _responsiveUtils.isMobile(_context) ? 10 : 16, - color: AppColor.colorTextButton)) - ..onPressActionClick(() { - if (_onPressEmailActionClick != null) { - _onPressEmailActionClick!(EmailActionType.forward); - }}) - ..text(AppLocalizations.of(_context).forward, isVertical: _responsiveUtils.isMobile(_context))) - .build()), - if (_responsiveUtils.mailboxDashboardOnlyHasEmailView(_context)) - Expanded(child: (ButtonBuilder(_imagePaths.icNewMessage) - ..key(const Key('button_new_message')) - ..size(20) - ..paddingIcon(EdgeInsets.only( - top: _responsiveUtils.isMobile(_context) ? 10 : 16, - bottom: _responsiveUtils.isMobile(_context) ? 8 : 16, - right: 5)) - ..textStyle(TextStyle( - fontSize: _responsiveUtils.isMobile(_context) ? 10 : 16, - color: AppColor.colorTextButton)) - ..onPressActionClick(() { - if (_onPressEmailActionClick != null) { - _onPressEmailActionClick!(EmailActionType.compose); - }}) - ..text(AppLocalizations.of(_context).new_message, isVertical: _responsiveUtils.isMobile(_context))) - .build()) - ] - ); - } } \ No newline at end of file