Keep contact support button in app bar on desktop
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -11,6 +11,8 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||
|
||||
typedef OnTapContactSupportAction = Function(ContactSupportCapability contactSupport);
|
||||
|
||||
mixin ContactSupportMixin {
|
||||
|
||||
void onGetHelpOrReportBug(
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/view/web/composer_overlay_view.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
||||
@@ -66,11 +67,16 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
imagePaths: controller.imagePaths,
|
||||
accountId: accountId,
|
||||
avatarUserName: controller.getOwnEmailAddress().firstCharacterToUpperCase,
|
||||
contactSupportCapability: accountId != null
|
||||
? controller.sessionCurrent?.getContactSupportCapability(accountId)
|
||||
: null,
|
||||
searchForm: SearchInputFormWidget(),
|
||||
appGridController: controller.appGridDashboardController,
|
||||
onTapApplicationLogoAction: controller.redirectToInboxAction,
|
||||
onTapAvatarAction: (position) =>
|
||||
controller.handleClickAvatarAction(context, position),
|
||||
onTapContactSupportAction: (contactSupport) =>
|
||||
controller.onGetHelpOrReportBug(contactSupport),
|
||||
);
|
||||
}),
|
||||
Expanded(child: Row(children: [
|
||||
|
||||
+26
@@ -1,34 +1,42 @@
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
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:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.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';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_grid_dashboard_icon.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
class NavigationBarWidget extends StatelessWidget {
|
||||
|
||||
final ImagePaths imagePaths;
|
||||
final AccountId? accountId;
|
||||
final String avatarUserName;
|
||||
final ContactSupportCapability? contactSupportCapability;
|
||||
final Widget? searchForm;
|
||||
final AppGridDashboardController? appGridController;
|
||||
final VoidCallback? onTapApplicationLogoAction;
|
||||
final OnTapAvatarActionWithPositionClick? onTapAvatarAction;
|
||||
final OnTapContactSupportAction? onTapContactSupportAction;
|
||||
|
||||
const NavigationBarWidget({
|
||||
super.key,
|
||||
required this.imagePaths,
|
||||
required this.accountId,
|
||||
required this.avatarUserName,
|
||||
this.contactSupportCapability,
|
||||
this.searchForm,
|
||||
this.appGridController,
|
||||
this.onTapApplicationLogoAction,
|
||||
this.onTapAvatarAction,
|
||||
this.onTapContactSupportAction,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -58,6 +66,15 @@ class NavigationBarWidget extends StatelessWidget {
|
||||
child: searchForm
|
||||
),
|
||||
const Spacer(),
|
||||
if (contactSupportCapability?.isAvailable == true)
|
||||
TMailButtonWidget.fromIcon(
|
||||
icon: imagePaths.icHelp,
|
||||
iconColor: AppColor.messageDialogColor,
|
||||
backgroundColor: Colors.transparent,
|
||||
margin: const EdgeInsetsDirectional.only(end: 8),
|
||||
tooltipMessage: AppLocalizations.of(context).getHelpOrReportABug,
|
||||
onTapActionCallback: () => onTapContactSupportAction?.call(contactSupportCapability!),
|
||||
),
|
||||
if (appGridController != null)
|
||||
Obx(() {
|
||||
if (appGridController!.listLinagoraApp.isNotEmpty) {
|
||||
@@ -92,6 +109,15 @@ class NavigationBarWidget extends StatelessWidget {
|
||||
else
|
||||
...[
|
||||
const Spacer(),
|
||||
if (contactSupportCapability?.isAvailable == true)
|
||||
TMailButtonWidget.fromIcon(
|
||||
icon: imagePaths.icHelp,
|
||||
iconColor: AppColor.messageDialogColor,
|
||||
backgroundColor: Colors.transparent,
|
||||
margin: const EdgeInsetsDirectional.only(end: 8),
|
||||
tooltipMessage: AppLocalizations.of(context).getHelpOrReportABug,
|
||||
onTapActionCallback: () => onTapContactSupportAction?.call(contactSupportCapability!),
|
||||
),
|
||||
if (appGridController != null)
|
||||
Obx(() {
|
||||
if (appGridController!.listLinagoraApp.isNotEmpty) {
|
||||
|
||||
Reference in New Issue
Block a user