TF-3758 Update contact support in left menu on mobile
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/open_app_grid_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart';
|
||||
@@ -17,6 +18,7 @@ abstract class BaseMailboxView extends GetWidget<MailboxController>
|
||||
return Obx(() {
|
||||
final dashboardController = controller.mailboxDashBoardController;
|
||||
final accountId = dashboardController.accountId.value;
|
||||
final session = dashboardController.sessionCurrent;
|
||||
final username = accountId != null
|
||||
? dashboardController.getOwnEmailAddress()
|
||||
: '';
|
||||
@@ -25,13 +27,20 @@ abstract class BaseMailboxView extends GetWidget<MailboxController>
|
||||
.appGridDashboardController
|
||||
.listLinagoraApp;
|
||||
|
||||
final contactSupportCapability = accountId != null && session != null
|
||||
? session.getContactSupportCapability(accountId)
|
||||
: null;
|
||||
|
||||
return MailboxAppBar(
|
||||
imagePaths: controller.imagePaths,
|
||||
username: username,
|
||||
openSettingsAction: controller.mailboxDashBoardController.goToSettings,
|
||||
onOpenAppGridAction: linagoraApps.isNotEmpty
|
||||
openSettingsAction: dashboardController.goToSettings,
|
||||
openAppGridAction: linagoraApps.isNotEmpty
|
||||
? () => controller.openAppGrid(linagoraApps)
|
||||
: null,
|
||||
openContactSupportAction: contactSupportCapability?.isAvailable == true
|
||||
? () => dashboardController.onGetHelpOrReportBug(contactSupportCapability!)
|
||||
: null,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3,22 +3,26 @@ 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/user_avatar_builder.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/app_grid/app_grid_icon.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/widgets/support/contact_support_icon.dart';
|
||||
|
||||
typedef OnOpenSettingsAction = void Function();
|
||||
typedef OnOpenAppGridAction = void Function();
|
||||
typedef OnOpenContactSupportAction = void Function();
|
||||
|
||||
class MailboxAppBar extends StatelessWidget {
|
||||
final ImagePaths imagePaths;
|
||||
final String username;
|
||||
final OnOpenSettingsAction? openSettingsAction;
|
||||
final OnOpenAppGridAction? onOpenAppGridAction;
|
||||
final OnOpenAppGridAction? openAppGridAction;
|
||||
final OnOpenContactSupportAction? openContactSupportAction;
|
||||
|
||||
const MailboxAppBar({
|
||||
super.key,
|
||||
required this.imagePaths,
|
||||
required this.username,
|
||||
this.openSettingsAction,
|
||||
this.onOpenAppGridAction,
|
||||
this.openAppGridAction,
|
||||
this.openContactSupportAction,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -33,10 +37,15 @@ class MailboxAppBar extends StatelessWidget {
|
||||
children: [
|
||||
ApplicationLogoWidthTextWidget(iconSize: 22),
|
||||
const Spacer(),
|
||||
if (onOpenAppGridAction != null)
|
||||
if (openContactSupportAction != null)
|
||||
ContactSupportIcon(
|
||||
icon: imagePaths.icHelp,
|
||||
onTapAction: openContactSupportAction!,
|
||||
),
|
||||
if (openAppGridAction != null)
|
||||
AppGridIcon(
|
||||
icon: imagePaths.icAppDashboard,
|
||||
onTapAction: onOpenAppGridAction!,
|
||||
onTapAction: openAppGridAction!,
|
||||
),
|
||||
UserAvatarBuilder(
|
||||
username: username,
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ContactSupportIcon extends StatelessWidget {
|
||||
|
||||
final String icon;
|
||||
final VoidCallback onTapAction;
|
||||
|
||||
const ContactSupportIcon({
|
||||
super.key,
|
||||
required this.icon,
|
||||
required this.onTapAction,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return TMailButtonWidget.fromIcon(
|
||||
icon: icon,
|
||||
backgroundColor: Colors.transparent,
|
||||
iconSize: 24,
|
||||
iconColor: AppColor.blackAlpha40,
|
||||
padding: const EdgeInsets.all(8),
|
||||
onTapActionCallback: onTapAction,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user