TF-2945 Apply quick select for read receipt in composer on tablet
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
+1
@@ -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);
|
||||||
|
|||||||
+11
-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;
|
||||||
|
|||||||
Reference in New Issue
Block a user