TF-2945 Apply quick select for read receipt in composer on web
This commit is contained in:
@@ -1785,8 +1785,14 @@ class ComposerController extends BaseController with DragDropFileMixin implement
|
||||
}
|
||||
}
|
||||
|
||||
void toggleRequestReadReceipt() {
|
||||
void toggleRequestReadReceipt(BuildContext context) {
|
||||
hasRequestReadReceipt.toggle();
|
||||
|
||||
appToast.showToastSuccessMessage(
|
||||
context,
|
||||
hasRequestReadReceipt.isTrue
|
||||
? AppLocalizations.of(context).requestReadReceiptHasBeenEnabled
|
||||
: AppLocalizations.of(context).requestReadReceiptHasBeenDisabled);
|
||||
}
|
||||
|
||||
Future<void> _autoFocusFieldWhenLauncher() async {
|
||||
|
||||
@@ -440,7 +440,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
isSelected: controller.hasRequestReadReceipt.value,
|
||||
onCallbackAction: () {
|
||||
popBack();
|
||||
controller.toggleRequestReadReceipt();
|
||||
controller.toggleRequestReadReceipt(context);
|
||||
}
|
||||
)
|
||||
),
|
||||
@@ -461,7 +461,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
isSelected: controller.hasRequestReadReceipt.value,
|
||||
onCallbackAction: () {
|
||||
popBack();
|
||||
controller.toggleRequestReadReceipt();
|
||||
controller.toggleRequestReadReceipt(context);
|
||||
}
|
||||
)
|
||||
),
|
||||
|
||||
@@ -467,6 +467,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
Obx(() => BottomBarComposerWidget(
|
||||
isCodeViewEnabled: controller.richTextWebController!.codeViewEnabled,
|
||||
isFormattingOptionsEnabled: controller.richTextWebController!.isFormattingOptionsEnabled,
|
||||
hasReadReceipt: controller.hasRequestReadReceipt.value,
|
||||
openRichToolbarAction: controller.richTextWebController!.toggleFormattingOptions,
|
||||
attachFileAction: () => controller.openFilePickerByType(context, FileType.any),
|
||||
insertImageAction: () => controller.insertImage(context, constraints.maxWidth),
|
||||
@@ -474,14 +475,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
deleteComposerAction: () => controller.handleClickDeleteComposer(context),
|
||||
saveToDraftAction: () => controller.handleClickSaveAsDraftsButton(context),
|
||||
sendMessageAction: () => controller.handleClickSendButton(context),
|
||||
requestReadReceiptAction: (position) {
|
||||
controller.openPopupMenuAction(
|
||||
context,
|
||||
position,
|
||||
_createReadReceiptPopupItems(context),
|
||||
radius: ComposerStyle.popupMenuRadius
|
||||
);
|
||||
},
|
||||
requestReadReceiptAction: () => controller.toggleRequestReadReceipt(context),
|
||||
)),
|
||||
],
|
||||
),
|
||||
@@ -776,6 +770,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
Obx(() => BottomBarComposerWidget(
|
||||
isCodeViewEnabled: controller.richTextWebController!.codeViewEnabled,
|
||||
isFormattingOptionsEnabled: controller.richTextWebController!.isFormattingOptionsEnabled,
|
||||
hasReadReceipt: controller.hasRequestReadReceipt.value,
|
||||
openRichToolbarAction: controller.richTextWebController!.toggleFormattingOptions,
|
||||
attachFileAction: () => controller.openFilePickerByType(context, FileType.any),
|
||||
insertImageAction: () => controller.insertImage(context, constraints.maxWidth),
|
||||
@@ -783,14 +778,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
deleteComposerAction: () => controller.handleClickDeleteComposer(context),
|
||||
saveToDraftAction: () => controller.handleClickSaveAsDraftsButton(context),
|
||||
sendMessageAction: () => controller.handleClickSendButton(context),
|
||||
requestReadReceiptAction: (position) {
|
||||
controller.openPopupMenuAction(
|
||||
context,
|
||||
position,
|
||||
_createReadReceiptPopupItems(context),
|
||||
radius: ComposerStyle.popupMenuRadius
|
||||
);
|
||||
},
|
||||
requestReadReceiptAction: () => controller.toggleRequestReadReceipt(context),
|
||||
)),
|
||||
]),
|
||||
);
|
||||
@@ -799,26 +787,6 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
);
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
)
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
List<PopupMenuEntry> _createMoreOptionPopupItems(BuildContext context) {
|
||||
return [
|
||||
PopupMenuItem(
|
||||
@@ -849,7 +817,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
isSelected: controller.hasRequestReadReceipt.value,
|
||||
onCallbackAction: () {
|
||||
popBack();
|
||||
controller.toggleRequestReadReceipt();
|
||||
controller.toggleRequestReadReceipt(context);
|
||||
}
|
||||
)
|
||||
),
|
||||
|
||||
@@ -11,6 +11,7 @@ class BottomBarComposerWidget extends StatelessWidget {
|
||||
|
||||
final bool isCodeViewEnabled;
|
||||
final bool isFormattingOptionsEnabled;
|
||||
final bool hasReadReceipt;
|
||||
final VoidCallback openRichToolbarAction;
|
||||
final VoidCallback attachFileAction;
|
||||
final VoidCallback insertImageAction;
|
||||
@@ -18,7 +19,7 @@ class BottomBarComposerWidget extends StatelessWidget {
|
||||
final VoidCallback deleteComposerAction;
|
||||
final VoidCallback saveToDraftAction;
|
||||
final VoidCallback sendMessageAction;
|
||||
final OnRequestReadReceiptAction? requestReadReceiptAction;
|
||||
final VoidCallback requestReadReceiptAction;
|
||||
|
||||
final _imagePaths = Get.find<ImagePaths>();
|
||||
|
||||
@@ -26,6 +27,7 @@ class BottomBarComposerWidget extends StatelessWidget {
|
||||
super.key,
|
||||
required this.isCodeViewEnabled,
|
||||
required this.isFormattingOptionsEnabled,
|
||||
required this.hasReadReceipt,
|
||||
required this.openRichToolbarAction,
|
||||
required this.attachFileAction,
|
||||
required this.insertImageAction,
|
||||
@@ -33,7 +35,7 @@ class BottomBarComposerWidget extends StatelessWidget {
|
||||
required this.deleteComposerAction,
|
||||
required this.saveToDraftAction,
|
||||
required this.sendMessageAction,
|
||||
this.requestReadReceiptAction,
|
||||
required this.requestReadReceiptAction,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -113,8 +115,13 @@ class BottomBarComposerWidget extends StatelessWidget {
|
||||
borderRadius: BottomBarComposerWidgetStyle.iconRadius,
|
||||
padding: BottomBarComposerWidgetStyle.iconPadding,
|
||||
iconSize: BottomBarComposerWidgetStyle.iconSize,
|
||||
tooltipMessage: AppLocalizations.of(context).requestReadReceipt,
|
||||
onTapActionAtPositionCallback: requestReadReceiptAction,
|
||||
iconColor: hasReadReceipt
|
||||
? BottomBarComposerWidgetStyle.selectedIconColor
|
||||
: BottomBarComposerWidgetStyle.iconColor,
|
||||
tooltipMessage: hasReadReceipt
|
||||
? AppLocalizations.of(context).turnOffRequestReadReceipt
|
||||
: AppLocalizations.of(context).turnOnRequestReadReceipt,
|
||||
onTapActionCallback: requestReadReceiptAction,
|
||||
),
|
||||
const SizedBox(width: BottomBarComposerWidgetStyle.space),
|
||||
TMailButtonWidget.fromIcon(
|
||||
|
||||
Reference in New Issue
Block a user