From 2228d1a5d8287892f1e2e884713912573752beb9 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 6 Jun 2024 00:04:25 +0700 Subject: [PATCH] TF-2857 Change logo & text in application --- assets/images/ic_logo_with_text.svg | 48 +++++++++++++++++++ assets/images/ic_tmail_logo.svg | 37 +++++++------- .../presentation/resources/image_paths.dart | 1 + .../views/button/tmail_button_widget.dart | 7 +++ .../container/tmail_container_widget.dart | 33 +++++++------ .../application_logo_with_text_widget.dart | 25 ++++++++++ .../login/presentation/login_view_web.dart | 26 ++-------- .../presentation/mailbox_view_web.dart | 9 +--- .../mailbox_dashboard_view_web.dart | 10 ++-- .../manage_account_dashboard_view.dart | 12 ++--- .../menu/manage_account_menu_view.dart | 9 +--- 11 files changed, 132 insertions(+), 85 deletions(-) create mode 100644 assets/images/ic_logo_with_text.svg create mode 100644 lib/features/base/widget/application_logo_with_text_widget.dart diff --git a/assets/images/ic_logo_with_text.svg b/assets/images/ic_logo_with_text.svg new file mode 100644 index 000000000..1ed868dc9 --- /dev/null +++ b/assets/images/ic_logo_with_text.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/ic_tmail_logo.svg b/assets/images/ic_tmail_logo.svg index 09c8a6982..cbe469599 100644 --- a/assets/images/ic_tmail_logo.svg +++ b/assets/images/ic_tmail_logo.svg @@ -1,22 +1,23 @@ - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart index 86e6c3c4a..a038a0488 100644 --- a/core/lib/presentation/resources/image_paths.dart +++ b/core/lib/presentation/resources/image_paths.dart @@ -195,6 +195,7 @@ class ImagePaths { String get icEventUpdated => _getImagePath('ic_event_updated.svg'); String get icEventCanceled => _getImagePath('ic_event_canceled.svg'); String get icFormatQuote => _getImagePath('ic_format_quote.svg'); + String get icLogoWithText => _getImagePath('ic_logo_with_text.svg'); String get icTMailLogo => _getImagePath('ic_tmail_logo.svg'); String get icLoginGraphic => _getImagePath('ic_login_graphic.svg'); String get icCancel => _getImagePath('ic_cancel.svg'); diff --git a/core/lib/presentation/views/button/tmail_button_widget.dart b/core/lib/presentation/views/button/tmail_button_widget.dart index 1a8f8e151..b6d06720f 100644 --- a/core/lib/presentation/views/button/tmail_button_widget.dart +++ b/core/lib/presentation/views/button/tmail_button_widget.dart @@ -39,6 +39,7 @@ class TMailButtonWidget extends StatelessWidget { final int? maxLines; final MainAxisSize mainAxisSize; final bool isLoading; + final Color? hoverColor; const TMailButtonWidget({ super.key, @@ -72,6 +73,7 @@ class TMailButtonWidget extends StatelessWidget { this.maxLines, this.mainAxisSize = MainAxisSize.max, this.isLoading = false, + this.hoverColor, }); factory TMailButtonWidget.fromIcon({ @@ -96,6 +98,7 @@ class TMailButtonWidget extends StatelessWidget { Color? trailingIconColor, List? boxShadow, EdgeInsetsGeometry? margin, + Color? hoverColor, }) { return TMailButtonWidget( key: key, @@ -120,6 +123,7 @@ class TMailButtonWidget extends StatelessWidget { trailingIconColor: trailingIconColor, boxShadow: boxShadow, margin: margin, + hoverColor: hoverColor, ); } @@ -144,6 +148,7 @@ class TMailButtonWidget extends StatelessWidget { bool flexibleText = false, BoxBorder? border, int? maxLines, + Color? hoverColor, }) { return TMailButtonWidget( key: key, @@ -166,6 +171,7 @@ class TMailButtonWidget extends StatelessWidget { flexibleText: flexibleText, border: border, maxLines: maxLines, + hoverColor: hoverColor, ); } @@ -353,6 +359,7 @@ class TMailButtonWidget extends StatelessWidget { margin: margin, boxShadow: boxShadow, border: border, + hoverColor: hoverColor, child: childWidget, ); } diff --git a/core/lib/presentation/views/container/tmail_container_widget.dart b/core/lib/presentation/views/container/tmail_container_widget.dart index 525e92f24..a23bc1136 100644 --- a/core/lib/presentation/views/container/tmail_container_widget.dart +++ b/core/lib/presentation/views/container/tmail_container_widget.dart @@ -21,6 +21,7 @@ class TMailContainerWidget extends StatelessWidget { final EdgeInsetsGeometry? margin; final List? boxShadow; final BoxBorder? border; + final Color? hoverColor; const TMailContainerWidget({ super.key, @@ -39,27 +40,31 @@ class TMailContainerWidget extends StatelessWidget { this.boxShadow, this.margin, this.border, + this.hoverColor, }); @override Widget build(BuildContext context) { final materialChild = Material( - color: Colors.transparent, + type: MaterialType.transparency, child: InkWell( onTap: onTapActionCallback, - onTapDown: (detail) { - if (onTapActionAtPositionCallback != null) { - final screenSize = MediaQuery.of(context).size; - final offset = detail.globalPosition; - final position = RelativeRect.fromLTRB( - offset.dx, - offset.dy, - screenSize.width - offset.dx, - screenSize.height - offset.dy, - ); - onTapActionAtPositionCallback!.call(position); - } - }, + onTapDown: onTapActionAtPositionCallback != null + ? (detail) { + if (onTapActionAtPositionCallback != null) { + final screenSize = MediaQuery.of(context).size; + final offset = detail.globalPosition; + final position = RelativeRect.fromLTRB( + offset.dx, + offset.dy, + screenSize.width - offset.dx, + screenSize.height - offset.dy, + ); + onTapActionAtPositionCallback!.call(position); + } + } + : null, + hoverColor: hoverColor, onLongPress: onLongPressActionCallback, borderRadius: BorderRadius.all(Radius.circular(borderRadius)), child: tooltipMessage != null diff --git a/lib/features/base/widget/application_logo_with_text_widget.dart b/lib/features/base/widget/application_logo_with_text_widget.dart new file mode 100644 index 000000000..800aac90f --- /dev/null +++ b/lib/features/base/widget/application_logo_with_text_widget.dart @@ -0,0 +1,25 @@ +import 'package:core/presentation/resources/image_paths.dart'; +import 'package:core/presentation/views/button/tmail_button_widget.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +class ApplicationLogoWidthTextWidget extends StatelessWidget { + + final ImagePaths _imagePaths = Get.find(); + + final VoidCallback? onTapAction; + + ApplicationLogoWidthTextWidget({super.key, this.onTapAction}); + + @override + Widget build(BuildContext context) { + return TMailButtonWidget.fromIcon( + icon: _imagePaths.icLogoWithText, + iconSize: 33, + padding: EdgeInsets.zero, + backgroundColor: Colors.transparent, + hoverColor: Colors.transparent, + onTapActionCallback: onTapAction, + ); + } +} \ No newline at end of file diff --git a/lib/features/login/presentation/login_view_web.dart b/lib/features/login/presentation/login_view_web.dart index 53b9286ee..e6547a00d 100644 --- a/lib/features/login/presentation/login_view_web.dart +++ b/lib/features/login/presentation/login_view_web.dart @@ -5,6 +5,7 @@ import 'package:core/presentation/views/text/slogan_builder.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart'; +import 'package:tmail_ui_user/features/base/widget/application_logo_with_text_widget.dart'; import 'package:tmail_ui_user/features/login/presentation/base_login_view.dart'; import 'package:tmail_ui_user/features/login/presentation/login_form_type.dart'; import 'package:tmail_ui_user/features/login/presentation/privacy_link_widget.dart'; @@ -39,7 +40,7 @@ class LoginView extends BaseLoginView { children: [ Padding( padding: const EdgeInsets.only(top: 67), - child: _buildAppLogo(context) + child: ApplicationLogoWidthTextWidget() ), Padding( padding: const EdgeInsets.only(top: 67), @@ -181,7 +182,7 @@ class LoginView extends BaseLoginView { children: [ Padding( padding: const EdgeInsets.only(top: 66), - child: _buildAppLogo(context) + child: ApplicationLogoWidthTextWidget() ), Padding( padding: const EdgeInsets.only(top: 67), @@ -221,27 +222,6 @@ class LoginView extends BaseLoginView { ); } - Widget _buildAppLogo(BuildContext buildContext) { - return Row( - mainAxisSize: MainAxisSize.min, - children: [ - SvgPicture.asset( - controller.imagePaths.icTMailLogo, - fit: BoxFit.fill, - width: 36, - height: 36, - alignment: Alignment.center), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 10), - child: Text( - AppLocalizations.of(buildContext).app_name, - style: const TextStyle(color: Colors.black, fontSize: 24, fontWeight: FontWeight.bold), - textAlign: TextAlign.center), - ), - ] - ); - } - Widget _buildLoadingProgress(BuildContext context) { return Obx(() => controller.viewState.value.fold( (failure) { diff --git a/lib/features/mailbox/presentation/mailbox_view_web.dart b/lib/features/mailbox/presentation/mailbox_view_web.dart index a1dea38e2..e74beee1a 100644 --- a/lib/features/mailbox/presentation/mailbox_view_web.dart +++ b/lib/features/mailbox/presentation/mailbox_view_web.dart @@ -3,6 +3,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; +import 'package:tmail_ui_user/features/base/widget/application_logo_with_text_widget.dart'; import 'package:tmail_ui_user/features/base/widget/application_version_widget.dart'; import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/base_mailbox_view.dart'; @@ -64,13 +65,7 @@ class MailboxView extends BaseMailboxView { start: controller.responsiveUtils.isDesktop(context) ? 32 : 16, ), child: Row(children: [ - SloganBuilder( - sizeLogo: 24, - text: AppLocalizations.of(context).app_name, - textAlign: TextAlign.center, - textStyle: const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold), - logoSVG: controller.imagePaths.icTMailLogo - ), + ApplicationLogoWidthTextWidget(), ApplicationVersionWidget( applicationManager: controller.mailboxDashBoardController.applicationManager, padding: const EdgeInsets.only(top: 4), diff --git a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart index 8cfd02094..5ebfb3bba 100644 --- a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart +++ b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart @@ -5,6 +5,7 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/extensions/username_extension.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; +import 'package:tmail_ui_user/features/base/widget/application_logo_with_text_widget.dart'; import 'package:tmail_ui_user/features/base/widget/application_version_widget.dart'; import 'package:tmail_ui_user/features/base/widget/popup_item_no_icon_widget.dart'; import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart'; @@ -69,13 +70,8 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { alignment: Alignment.center, height: 80, child: Row(children: [ - SloganBuilder( - sizeLogo: 24, - text: AppLocalizations.of(context).app_name, - textAlign: TextAlign.center, - textStyle: const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold), - logoSVG: controller.imagePaths.icTMailLogo, - onTapCallback: controller.redirectToInboxAction, + ApplicationLogoWidthTextWidget( + onTapAction: controller.redirectToInboxAction, ), ApplicationVersionWidget( applicationManager: controller.applicationManager diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart index 2d5f40d6c..11ffd4afc 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart @@ -3,11 +3,11 @@ import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/views/image/avatar_builder.dart'; import 'package:core/presentation/views/responsive/responsive_widget.dart'; -import 'package:core/presentation/views/text/slogan_builder.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; import 'package:tmail_ui_user/features/base/state/banner_state.dart'; +import 'package:tmail_ui_user/features/base/widget/application_logo_with_text_widget.dart'; import 'package:tmail_ui_user/features/base/widget/application_version_widget.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/always_read_receipt/always_read_receipt_view.dart'; @@ -25,7 +25,6 @@ import 'package:tmail_ui_user/features/manage_account/presentation/model/account import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart'; -import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; class ManageAccountDashBoardView extends GetWidget @@ -47,13 +46,8 @@ class ManageAccountDashBoardView extends GetWidget controller.backToMailboxDashBoard(context: context), + ApplicationLogoWidthTextWidget( + onTapAction: () => controller.backToMailboxDashBoard(context: context), ), ApplicationVersionWidget( applicationManager: controller.applicationManager diff --git a/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart b/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart index 7154338c6..103db1f02 100644 --- a/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart +++ b/lib/features/manage_account/presentation/menu/manage_account_menu_view.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/base/widget/application_version_widget.dart'; +import 'package:tmail_ui_user/features/base/widget/application_logo_with_text_widget.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_controller.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/widgets/account_menu_item_tile_builder.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; @@ -25,13 +26,7 @@ class ManageAccountMenuView extends GetWidget { color: Colors.white, padding: const EdgeInsets.only(top: 16, bottom: 16, left: 16), child: Row(children: [ - SloganBuilder( - sizeLogo: 24, - text: AppLocalizations.of(context).app_name, - textAlign: TextAlign.center, - textStyle: const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold), - logoSVG: controller.imagePaths.icTMailLogo - ), + ApplicationLogoWidthTextWidget(), ApplicationVersionWidget( applicationManager: controller.dashBoardController.applicationManager, padding: const EdgeInsets.only(top: 4),