TF-3181 Handle on click contact support

(cherry picked from commit 7a6a02f58f5194c7f8c8ad3c047a5b8938ba598e)
This commit is contained in:
dab246
2024-12-06 02:28:59 +07:00
committed by Dat H. Pham
parent 2da1e555bb
commit 360027d7a1
10 changed files with 176 additions and 6 deletions
@@ -28,6 +28,7 @@ import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
import 'package:rxdart/transformers.dart';
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
import 'package:tmail_ui_user/features/base/mixin/contact_support_mixin.dart';
import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart';
import 'package:tmail_ui_user/features/composer/domain/exceptions/set_method_exception.dart';
import 'package:tmail_ui_user/features/composer/domain/extensions/email_request_extension.dart';
@@ -166,7 +167,8 @@ import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
import 'package:tmail_ui_user/main/utils/ios_notification_manager.dart';
import 'package:uuid/uuid.dart';
class MailboxDashBoardController extends ReloadableController with UserSettingPopupMenuMixin {
class MailboxDashBoardController extends ReloadableController
with UserSettingPopupMenuMixin, ContactSupportMixin {
final RemoveEmailDraftsInteractor _removeEmailDraftsInteractor = Get.find<RemoveEmailDraftsInteractor>();
final EmailReceiveManager _emailReceiveManager = Get.find<EmailReceiveManager>();
@@ -75,6 +75,11 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
onShowAppDashboardAction: controller.showAppDashboardAction,
onTapApplicationLogoAction: controller.redirectToInboxAction,
onTapAvatarAction: (position) => controller.handleClickAvatarAction(context, position),
onTapContactSupportAction: (contactSupport) =>
controller.onGetHelpOrReportBug(
contactSupport,
controller,
),
);
}
}),
@@ -5,6 +5,7 @@ import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:core/presentation/views/image/avatar_builder.dart';
import 'package:flutter/material.dart';
import 'package:model/support/contact_support_capability.dart';
import 'package:tmail_ui_user/features/base/mixin/contact_support_mixin.dart';
import 'package:tmail_ui_user/features/base/widget/application_logo_with_text_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';
@@ -22,6 +23,7 @@ class NavigationBarWidget extends StatelessWidget {
final VoidCallback? onTapApplicationLogoAction;
final VoidCallback? onShowAppDashboardAction;
final OnTapAvatarActionWithPositionClick? onTapAvatarAction;
final OnTapContactSupportAction? onTapContactSupportAction;
const NavigationBarWidget({
super.key,
@@ -33,6 +35,7 @@ class NavigationBarWidget extends StatelessWidget {
this.onShowAppDashboardAction,
this.onTapApplicationLogoAction,
this.onTapAvatarAction,
this.onTapContactSupportAction,
});
@override
@@ -69,7 +72,7 @@ class NavigationBarWidget extends StatelessWidget {
backgroundColor: Colors.transparent,
margin: const EdgeInsetsDirectional.only(end: 8),
tooltipMessage: AppLocalizations.of(context).getHelpOrReportABug,
onTapActionCallback: () {},
onTapActionCallback: () => onTapContactSupportAction?.call(contactSupportCapability!),
),
if (AppConfig.appGridDashboardAvailable && appGridController != null)
Padding(
@@ -109,7 +112,7 @@ class NavigationBarWidget extends StatelessWidget {
backgroundColor: Colors.transparent,
margin: const EdgeInsetsDirectional.only(end: 8),
tooltipMessage: AppLocalizations.of(context).getHelpOrReportABug,
onTapActionCallback: () {},
onTapActionCallback: () => onTapContactSupportAction?.call(contactSupportCapability!),
),
if (AppConfig.appGridDashboardAvailable && appGridController != null)
Padding(