TF-2945 Apply quick select for read receipt in composer on tablet

This commit is contained in:
dab246
2024-07-10 14:07:25 +07:00
committed by Dat H. Pham
parent c8ea2da3cf
commit 1b70226c0f
4 changed files with 16 additions and 37 deletions
@@ -381,19 +381,13 @@ class ComposerView extends GetWidget<ComposerController> {
), ),
) )
), ),
TabletBottomBarComposerWidget( Obx(() => TabletBottomBarComposerWidget(
hasReadReceipt: controller.hasRequestReadReceipt.value,
deleteComposerAction: () => controller.handleClickDeleteComposer(context), deleteComposerAction: () => controller.handleClickDeleteComposer(context),
saveToDraftAction: () => controller.handleClickSaveAsDraftsButton(context), saveToDraftAction: () => controller.handleClickSaveAsDraftsButton(context),
sendMessageAction: () => controller.handleClickSendButton(context), sendMessageAction: () => controller.handleClickSendButton(context),
requestReadReceiptAction: (position) { requestReadReceiptAction: () => controller.toggleRequestReadReceipt(context),
controller.openPopupMenuAction( )),
context,
position,
_createReadReceiptPopupItems(context),
radius: ComposerStyle.popupMenuRadius
);
},
),
] ]
) )
), ),
@@ -427,26 +421,6 @@ class ComposerView extends GetWidget<ComposerController> {
.build(); .build();
} }
List<PopupMenuEntry> _createReadReceiptPopupItems(BuildContext context) {
return [
PopupMenuItem(
padding: EdgeInsets.zero,
child: PopupItemWidget(
controller.imagePaths.icReadReceipt,
AppLocalizations.of(context).requestReadReceipt,
styleName: ComposerStyle.popupItemTextStyle,
padding: ComposerStyle.popupItemPadding,
selectedIcon: controller.imagePaths.icFilterSelected,
isSelected: controller.hasRequestReadReceipt.value,
onCallbackAction: () {
popBack();
controller.toggleRequestReadReceipt(context);
}
)
),
];
}
List<PopupMenuEntry> _createMoreOptionPopupItems(BuildContext context) { List<PopupMenuEntry> _createMoreOptionPopupItems(BuildContext context) {
return [ return [
PopupMenuItem( PopupMenuItem(
@@ -13,6 +13,7 @@ class TabletBottomBarComposerWidgetStyle {
static const Color backgroundColor = Colors.white; static const Color backgroundColor = Colors.white;
static const Color iconColor = AppColor.colorRichButtonComposer; static const Color iconColor = AppColor.colorRichButtonComposer;
static const Color sendButtonBackgroundColor = AppColor.primaryColor; static const Color sendButtonBackgroundColor = AppColor.primaryColor;
static const Color selectedIconColor = AppColor.primaryColor;
static const EdgeInsetsGeometry padding = EdgeInsetsDirectional.symmetric(horizontal: 32, vertical: 12); static const EdgeInsetsGeometry padding = EdgeInsetsDirectional.symmetric(horizontal: 32, vertical: 12);
static const EdgeInsetsGeometry iconPadding = EdgeInsetsDirectional.all(5); static const EdgeInsetsGeometry iconPadding = EdgeInsetsDirectional.all(5);
@@ -3,24 +3,25 @@ import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:tmail_ui_user/features/composer/presentation/styles/mobile/tablet_bottom_bar_composer_widget_style.dart'; import 'package:tmail_ui_user/features/composer/presentation/styles/mobile/tablet_bottom_bar_composer_widget_style.dart';
import 'package:tmail_ui_user/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class TabletBottomBarComposerWidget extends StatelessWidget { class TabletBottomBarComposerWidget extends StatelessWidget {
final bool hasReadReceipt;
final VoidCallback deleteComposerAction; final VoidCallback deleteComposerAction;
final VoidCallback saveToDraftAction; final VoidCallback saveToDraftAction;
final VoidCallback sendMessageAction; final VoidCallback sendMessageAction;
final OnRequestReadReceiptAction? requestReadReceiptAction; final VoidCallback requestReadReceiptAction;
final _imagePaths = Get.find<ImagePaths>(); final _imagePaths = Get.find<ImagePaths>();
TabletBottomBarComposerWidget({ TabletBottomBarComposerWidget({
super.key, super.key,
required this.hasReadReceipt,
required this.deleteComposerAction, required this.deleteComposerAction,
required this.saveToDraftAction, required this.saveToDraftAction,
required this.sendMessageAction, required this.sendMessageAction,
this.requestReadReceiptAction, required this.requestReadReceiptAction,
}); });
@override @override
@@ -45,8 +46,13 @@ class TabletBottomBarComposerWidget extends StatelessWidget {
borderRadius: TabletBottomBarComposerWidgetStyle.iconRadius, borderRadius: TabletBottomBarComposerWidgetStyle.iconRadius,
padding: TabletBottomBarComposerWidgetStyle.iconPadding, padding: TabletBottomBarComposerWidgetStyle.iconPadding,
iconSize: TabletBottomBarComposerWidgetStyle.iconSize, iconSize: TabletBottomBarComposerWidgetStyle.iconSize,
tooltipMessage: AppLocalizations.of(context).requestReadReceipt, iconColor: hasReadReceipt
onTapActionAtPositionCallback: requestReadReceiptAction, ? TabletBottomBarComposerWidgetStyle.selectedIconColor
: TabletBottomBarComposerWidgetStyle.iconColor,
tooltipMessage: hasReadReceipt
? AppLocalizations.of(context).turnOffRequestReadReceipt
: AppLocalizations.of(context).turnOnRequestReadReceipt,
onTapActionCallback: requestReadReceiptAction,
), ),
const SizedBox(width: TabletBottomBarComposerWidgetStyle.space), const SizedBox(width: TabletBottomBarComposerWidgetStyle.space),
TMailButtonWidget.fromIcon( TMailButtonWidget.fromIcon(
@@ -5,8 +5,6 @@ import 'package:get/get.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/styles/web/bottom_bar_composer_widget_style.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
typedef OnRequestReadReceiptAction = Function(RelativeRect position);
class BottomBarComposerWidget extends StatelessWidget { class BottomBarComposerWidget extends StatelessWidget {
final bool isCodeViewEnabled; final bool isCodeViewEnabled;