TF-3427 Collapse side features of the composer in a side menu

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-01-16 11:26:32 +07:00
committed by Dat H. Pham
parent 6fa66efce2
commit 778c138a10
11 changed files with 143 additions and 77 deletions
@@ -1,8 +1,8 @@
import 'package:core/presentation/extensions/color_extension.dart';
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:tmail_ui_user/features/composer/presentation/styles/web/bottom_bar_composer_widget_style.dart';
import 'package:tmail_ui_user/features/composer/presentation/widgets/web/mobile_responsive_app_bar_composer_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class BottomBarComposerWidget extends StatelessWidget {
@@ -15,12 +15,10 @@ class BottomBarComposerWidget extends StatelessWidget {
final VoidCallback openRichToolbarAction;
final VoidCallback attachFileAction;
final VoidCallback insertImageAction;
final VoidCallback showCodeViewAction;
final VoidCallback deleteComposerAction;
final VoidCallback saveToDraftAction;
final VoidCallback sendMessageAction;
final VoidCallback requestReadReceiptAction;
final VoidCallback onPrintDraftAction;
final OnOpenContextMenuAction openContextMenuAction;
const BottomBarComposerWidget({
super.key,
@@ -32,12 +30,10 @@ class BottomBarComposerWidget extends StatelessWidget {
required this.openRichToolbarAction,
required this.attachFileAction,
required this.insertImageAction,
required this.showCodeViewAction,
required this.deleteComposerAction,
required this.saveToDraftAction,
required this.sendMessageAction,
required this.requestReadReceiptAction,
required this.onPrintDraftAction,
required this.openContextMenuAction,
});
@override
@@ -52,9 +48,7 @@ class BottomBarComposerWidget extends StatelessWidget {
icon: imagePaths.icRichToolbar,
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
padding: BottomBarComposerWidgetStyle.richTextIconPadding,
backgroundColor: isFormattingOptionsEnabled
? BottomBarComposerWidgetStyle.selectedBackgroundColor
: Colors.transparent,
backgroundColor: Colors.transparent,
iconSize: BottomBarComposerWidgetStyle.richTextIconSize,
iconColor: isFormattingOptionsEnabled
? BottomBarComposerWidgetStyle.selectedIconColor
@@ -78,7 +72,9 @@ class BottomBarComposerWidget extends StatelessWidget {
absorbing: isCodeViewEnabled,
child: TMailButtonWidget.fromIcon(
icon: imagePaths.icInsertImage,
iconColor: BottomBarComposerWidgetStyle.iconColor,
iconColor: isCodeViewEnabled
? BottomBarComposerWidgetStyle.disabledIconColor
: BottomBarComposerWidgetStyle.iconColor,
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
backgroundColor: Colors.transparent,
padding: BottomBarComposerWidgetStyle.iconPadding,
@@ -89,18 +85,12 @@ class BottomBarComposerWidget extends StatelessWidget {
),
const SizedBox(width: BottomBarComposerWidgetStyle.space),
TMailButtonWidget.fromIcon(
icon: imagePaths.icStyleCodeView,
iconColor: isCodeViewEnabled
? BottomBarComposerWidgetStyle.selectedIconColor
: BottomBarComposerWidgetStyle.iconColor,
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
backgroundColor: isCodeViewEnabled
? BottomBarComposerWidgetStyle.selectedBackgroundColor
: Colors.transparent,
padding: BottomBarComposerWidgetStyle.iconPadding,
icon: imagePaths.icMore,
iconColor: BottomBarComposerWidgetStyle.iconColor,
backgroundColor: Colors.transparent,
iconSize: BottomBarComposerWidgetStyle.iconSize,
tooltipMessage: AppLocalizations.of(context).embedCode,
onTapActionCallback: showCodeViewAction,
tooltipMessage: AppLocalizations.of(context).more,
onTapActionAtPositionCallback: openContextMenuAction,
),
const Spacer(),
TMailButtonWidget.fromIcon(
@@ -108,42 +98,19 @@ class BottomBarComposerWidget extends StatelessWidget {
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
padding: BottomBarComposerWidgetStyle.iconPadding,
iconSize: BottomBarComposerWidgetStyle.iconSize,
iconColor: BottomBarComposerWidgetStyle.iconColor,
backgroundColor: Colors.transparent,
tooltipMessage: AppLocalizations.of(context).delete,
onTapActionCallback: deleteComposerAction,
),
const SizedBox(width: BottomBarComposerWidgetStyle.space),
TMailButtonWidget.fromIcon(
icon: imagePaths.icReadReceipt,
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
padding: BottomBarComposerWidgetStyle.iconPadding,
iconSize: BottomBarComposerWidgetStyle.iconSize,
iconColor: hasReadReceipt
? BottomBarComposerWidgetStyle.selectedIconColor
: BottomBarComposerWidgetStyle.iconColor,
tooltipMessage: hasReadReceipt
? AppLocalizations.of(context).turnOffRequestReadReceipt
: AppLocalizations.of(context).turnOnRequestReadReceipt,
onTapActionCallback: requestReadReceiptAction,
),
const SizedBox(width: BottomBarComposerWidgetStyle.space),
if (isPrintDraftEnabled)
TMailButtonWidget.fromIcon(
icon: imagePaths.icPrinter,
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
padding: BottomBarComposerWidgetStyle.iconPadding,
iconSize: BottomBarComposerWidgetStyle.iconSize,
iconColor: AppColor.steelGrayA540,
margin: const EdgeInsetsDirectional.only(
end: BottomBarComposerWidgetStyle.space,
),
tooltipMessage: AppLocalizations.of(context).print,
onTapActionCallback: onPrintDraftAction,
),
TMailButtonWidget.fromIcon(
icon: imagePaths.icSaveToDraft,
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
padding: BottomBarComposerWidgetStyle.iconPadding,
iconSize: BottomBarComposerWidgetStyle.iconSize,
backgroundColor: Colors.transparent,
iconColor: BottomBarComposerWidgetStyle.iconColor,
tooltipMessage: AppLocalizations.of(context).saveAsDraft,
onTapActionCallback: saveToDraftAction,
),