From 401f0b97fb803aa4761056e7fd8df959c85e320a Mon Sep 17 00:00:00 2001 From: Dat Vu Date: Wed, 16 Oct 2024 17:56:20 +0700 Subject: [PATCH] Change logos to beta and move position version on web (#3203) --- assets/images/ic_logo_with_text_beta.svg | 49 ++++++++++++++++++ .../presentation/resources/image_paths.dart | 1 + env.file | 3 +- .../application_logo_with_text_widget.dart | 14 ++++- .../presentation/mailbox_view_web.dart | 51 ++++++++++++------- .../navigation_bar/navigation_bar_widget.dart | 3 +- .../menu/manage_account_menu_view.dart | 17 +++++++ .../quotas/presentation/quotas_view.dart | 6 ++- lib/main/utils/app_config.dart | 5 ++ 9 files changed, 124 insertions(+), 25 deletions(-) create mode 100644 assets/images/ic_logo_with_text_beta.svg diff --git a/assets/images/ic_logo_with_text_beta.svg b/assets/images/ic_logo_with_text_beta.svg new file mode 100644 index 000000000..0fc447edc --- /dev/null +++ b/assets/images/ic_logo_with_text_beta.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart index 075cc5b54..ce2516630 100644 --- a/core/lib/presentation/resources/image_paths.dart +++ b/core/lib/presentation/resources/image_paths.dart @@ -196,6 +196,7 @@ class ImagePaths { 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 icLogoWithTextBeta => _getImagePath('ic_logo_with_text_beta.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/env.file b/env.file index dee54041f..f3ff169d6 100644 --- a/env.file +++ b/env.file @@ -5,4 +5,5 @@ OIDC_SCOPES=openid,profile,email,offline_access APP_GRID_AVAILABLE=supported FCM_AVAILABLE=supported IOS_FCM=supported -FORWARD_WARNING_MESSAGE= \ No newline at end of file +FORWARD_WARNING_MESSAGE= +PLATFORM=other \ No newline at end of file diff --git a/lib/features/base/widget/application_logo_with_text_widget.dart b/lib/features/base/widget/application_logo_with_text_widget.dart index 800aac90f..ee7d0827a 100644 --- a/lib/features/base/widget/application_logo_with_text_widget.dart +++ b/lib/features/base/widget/application_logo_with_text_widget.dart @@ -1,22 +1,32 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/views/button/tmail_button_widget.dart'; +import 'package:core/utils/platform_info.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:tmail_ui_user/main/utils/app_config.dart'; class ApplicationLogoWidthTextWidget extends StatelessWidget { final ImagePaths _imagePaths = Get.find(); final VoidCallback? onTapAction; + final EdgeInsetsGeometry? margin; - ApplicationLogoWidthTextWidget({super.key, this.onTapAction}); + ApplicationLogoWidthTextWidget({ + super.key, + this.onTapAction, + this.margin, + }); @override Widget build(BuildContext context) { return TMailButtonWidget.fromIcon( - icon: _imagePaths.icLogoWithText, + icon: PlatformInfo.isWeb && !AppConfig.isSaasPlatForm + ? _imagePaths.icLogoWithTextBeta + : _imagePaths.icLogoWithText, iconSize: 33, padding: EdgeInsets.zero, + margin: margin, backgroundColor: Colors.transparent, hoverColor: Colors.transparent, onTapActionCallback: onTapAction, diff --git a/lib/features/mailbox/presentation/mailbox_view_web.dart b/lib/features/mailbox/presentation/mailbox_view_web.dart index 88d40f161..60c54f8b9 100644 --- a/lib/features/mailbox/presentation/mailbox_view_web.dart +++ b/lib/features/mailbox/presentation/mailbox_view_web.dart @@ -13,6 +13,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_item import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_loading_bar_widget.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget.dart'; import 'package:tmail_ui_user/features/quotas/presentation/quotas_view.dart'; +import 'package:tmail_ui_user/features/quotas/presentation/styles/quotas_view_styles.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/utils/app_config.dart'; @@ -31,8 +32,15 @@ class MailboxView extends BaseMailboxView { backgroundColor: controller.responsiveUtils.isWebDesktop(context) ? AppColor.colorBgDesktop : Colors.white, - body: Column(children: [ - if (!controller.responsiveUtils.isDesktop(context)) _buildLogoApp(context), + body: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + if (!controller.responsiveUtils.isDesktop(context)) + ApplicationLogoWidthTextWidget( + margin: const EdgeInsetsDirectional.only( + top: 16, + bottom: 16, + start: 16, + ), + ), if (!controller.responsiveUtils.isDesktop(context)) const Divider( color: AppColor.colorDividerMailbox, @@ -50,27 +58,34 @@ class MailboxView extends BaseMailboxView { child: _buildListMailbox(context), ), )), - const QuotasView(), + const QuotasView( + padding: EdgeInsetsDirectional.only( + start: QuotasViewStyles.padding, + top: QuotasViewStyles.padding, + ), + ), + Container( + color: AppColor.colorBgMailbox, + width: double.infinity, + alignment: controller.responsiveUtils.isDesktop(context) + ? AlignmentDirectional.centerStart + : AlignmentDirectional.center, + padding: const EdgeInsets.all(16), + child: ApplicationVersionWidget( + padding: EdgeInsets.zero, + title: '${AppLocalizations.of(context).version.toLowerCase()} ', + textStyle: Theme.of(context).textTheme.bodySmall?.copyWith( + fontSize: 13, + color: AppColor.colorTextBody, + fontWeight: FontWeight.normal + ), + ), + ), ]), ) ); } - Widget _buildLogoApp(BuildContext context) { - return Container( - color: Colors.white, - padding: EdgeInsetsDirectional.only( - top: controller.responsiveUtils.isDesktop(context) ? 25 : 16, - bottom: controller.responsiveUtils.isDesktop(context) ? 25 : 16, - start: controller.responsiveUtils.isDesktop(context) ? 32 : 16, - ), - child: Row(children: [ - ApplicationLogoWidthTextWidget(), - const ApplicationVersionWidget() - ]) - ); - } - Widget _buildListMailbox(BuildContext context) { final mailboxListWidget = SingleChildScrollView( controller: controller.mailboxListScrollController, diff --git a/lib/features/mailbox_dashboard/presentation/widgets/navigation_bar/navigation_bar_widget.dart b/lib/features/mailbox_dashboard/presentation/widgets/navigation_bar/navigation_bar_widget.dart index ad13899bd..21d4ba7c6 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/navigation_bar/navigation_bar_widget.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/navigation_bar/navigation_bar_widget.dart @@ -3,7 +3,6 @@ import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/views/image/avatar_builder.dart'; import 'package:flutter/material.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/controller/app_grid_dashboard_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/styles/navigation_bar_style.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_icon.dart'; @@ -41,7 +40,7 @@ class NavigationBarWidget extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ ApplicationLogoWidthTextWidget(onTapAction: onTapApplicationLogoAction), - const ApplicationVersionWidget() + const Spacer(), ], ), ), 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 df8e3a871..9c5fe7c8b 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 @@ -129,6 +129,23 @@ class ManageAccountMenuView extends GetWidget { ] ), )), + Container( + color: AppColor.colorBgMailbox, + width: double.infinity, + alignment: controller.responsiveUtils.isDesktop(context) + ? AlignmentDirectional.centerStart + : AlignmentDirectional.center, + padding: const EdgeInsets.all(16), + child: ApplicationVersionWidget( + padding: EdgeInsets.zero, + title: '${AppLocalizations.of(context).version.toLowerCase()} ', + textStyle: Theme.of(context).textTheme.bodySmall?.copyWith( + fontSize: 13, + color: AppColor.colorTextBody, + fontWeight: FontWeight.normal + ), + ), + ), ] ) ), diff --git a/lib/features/quotas/presentation/quotas_view.dart b/lib/features/quotas/presentation/quotas_view.dart index 0143887e8..ed054d7bf 100644 --- a/lib/features/quotas/presentation/quotas_view.dart +++ b/lib/features/quotas/presentation/quotas_view.dart @@ -8,7 +8,9 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; class QuotasView extends GetWidget { - const QuotasView({Key? key}) : super(key: key); + final EdgeInsetsGeometry? padding; + + const QuotasView({Key? key, this.padding}) : super(key: key); @override Widget build(BuildContext context) { @@ -17,7 +19,7 @@ class QuotasView extends GetWidget { final octetQuota = controller.octetsQuota.value!; return LayoutBuilder(builder: (context, constraints) { return Container( - padding: const EdgeInsetsDirectional.only( + padding: padding ?? const EdgeInsetsDirectional.only( start: QuotasViewStyles.padding, top: QuotasViewStyles.padding, bottom: QuotasViewStyles.bottomPadding diff --git a/lib/main/utils/app_config.dart b/lib/main/utils/app_config.dart index bff358776..a883e1a22 100644 --- a/lib/main/utils/app_config.dart +++ b/lib/main/utils/app_config.dart @@ -14,6 +14,7 @@ class AppConfig { static const String appFCMConfigurationPath = "configurations/env.fcm"; static const String iOSKeychainSharingGroupId = 'KUT463DS29.com.linagora.ios.teammail.shared'; static const String iOSKeychainSharingService = 'com.linagora.ios.teammail.sessions'; + static const String saasPlatform = 'saas'; static String get baseUrl => dotenv.get('SERVER_URL', fallback: ''); static String get domainRedirectUrl => dotenv.get('DOMAIN_REDIRECT_URL', fallback: ''); @@ -61,4 +62,8 @@ class AppConfig { return forwardWarningMessage; } + + static String get _platformEnv => dotenv.get('PLATFORM', fallback: 'other'); + + static bool get isSaasPlatForm => _platformEnv == saasPlatform; } \ No newline at end of file