diff --git a/assets/images/ic_logo_with_text.svg b/assets/images/ic_logo_with_text.svg
new file mode 100644
index 0000000000..1ed868dc9a
--- /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
deleted file mode 100644
index 09c8a69825..0000000000
--- a/assets/images/ic_tmail_logo.svg
+++ /dev/null
@@ -1,22 +0,0 @@
-
diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart
index 322b6e6fd7..069df60c0f 100644
--- a/core/lib/presentation/resources/image_paths.dart
+++ b/core/lib/presentation/resources/image_paths.dart
@@ -195,7 +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 icTMailLogo => _getImagePath('ic_tmail_logo.svg');
+ String get icLogoWithText => _getImagePath('ic_logo_with_text.svg');
String get icLoginGraphic => _getImagePath('ic_login_graphic.svg');
String get icCancel => _getImagePath('ic_cancel.svg');
String get icRichToolbar => _getImagePath('ic_rich_toolbar.svg');
diff --git a/core/lib/presentation/views/button/tmail_button_widget.dart b/core/lib/presentation/views/button/tmail_button_widget.dart
index 3f3a645c1d..5458009f1c 100644
--- a/core/lib/presentation/views/button/tmail_button_widget.dart
+++ b/core/lib/presentation/views/button/tmail_button_widget.dart
@@ -38,6 +38,7 @@ class TMailButtonWidget extends StatelessWidget {
final int? maxLines;
final MainAxisSize mainAxisSize;
final bool isLoading;
+ final Color? hoverColor;
const TMailButtonWidget({
super.key,
@@ -70,6 +71,7 @@ class TMailButtonWidget extends StatelessWidget {
this.maxLines,
this.mainAxisSize = MainAxisSize.max,
this.isLoading = false,
+ this.hoverColor,
});
factory TMailButtonWidget.fromIcon({
@@ -93,6 +95,7 @@ class TMailButtonWidget extends StatelessWidget {
Color? trailingIconColor,
List? boxShadow,
EdgeInsetsGeometry? margin,
+ Color? hoverColor,
}) {
return TMailButtonWidget(
key: key,
@@ -116,6 +119,7 @@ class TMailButtonWidget extends StatelessWidget {
trailingIconColor: trailingIconColor,
boxShadow: boxShadow,
margin: margin,
+ hoverColor: hoverColor,
);
}
@@ -139,6 +143,7 @@ class TMailButtonWidget extends StatelessWidget {
bool flexibleText = false,
BoxBorder? border,
int? maxLines,
+ Color? hoverColor,
}) {
return TMailButtonWidget(
key: key,
@@ -160,6 +165,7 @@ class TMailButtonWidget extends StatelessWidget {
flexibleText: flexibleText,
border: border,
maxLines: maxLines,
+ hoverColor: hoverColor,
);
}
@@ -346,6 +352,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 307bdc3df8..224c05a996 100644
--- a/core/lib/presentation/views/container/tmail_container_widget.dart
+++ b/core/lib/presentation/views/container/tmail_container_widget.dart
@@ -20,6 +20,7 @@ class TMailContainerWidget extends StatelessWidget {
final EdgeInsetsGeometry? margin;
final List? boxShadow;
final BoxBorder? border;
+ final Color? hoverColor;
const TMailContainerWidget({
super.key,
@@ -37,27 +38,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,
borderRadius: BorderRadius.all(Radius.circular(borderRadius)),
child: tooltipMessage != null
? Tooltip(
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 0000000000..800aac90fe
--- /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 53b9286ee3..e6547a00d4 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 19b3f23ed0..9ff0d81f28 100644
--- a/lib/features/mailbox/presentation/mailbox_view_web.dart
+++ b/lib/features/mailbox/presentation/mailbox_view_web.dart
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:model/model.dart';
import 'package:package_info_plus/package_info_plus.dart';
+import 'package:tmail_ui_user/features/base/widget/application_logo_with_text_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';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
@@ -61,13 +62,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(),
Obx(() {
if (controller.mailboxDashBoardController.appInformation.value != null) {
return _buildVersionInformation(context, controller.mailboxDashBoardController.appInformation.value!);
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 31c5a86a0c..786d030e40 100644
--- a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart
+++ b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart
@@ -4,6 +4,7 @@ import 'package:flutter_portal/flutter_portal.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.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/popup_item_no_icon_widget.dart';
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
@@ -67,13 +68,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,
),
Obx(() {
if (controller.appInformation.value != null) {
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 1cd383a8a3..dffa7e431f 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:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:get/get.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/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';
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/email_rules_view.dart';
@@ -24,7 +24,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
@@ -46,13 +45,8 @@ class ManageAccountDashBoardView extends GetWidget controller.backToMailboxDashBoard(context: context),
+ ApplicationLogoWidthTextWidget(
+ onTapAction: () => controller.backToMailboxDashBoard(context: context),
),
Obx(() {
if (controller.appInformation.value != null) {
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 7de028f2b3..83b0d3933d 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
@@ -4,6 +4,7 @@ import 'package:core/utils/direction_utils.dart';
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_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';
@@ -24,13 +25,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(),
Obx(() {
if (controller.dashBoardController.appInformation.value != null) {
return Padding(