@@ -765,54 +765,6 @@ class StarButton extends MessageActionSheetMenuItemButton {
765765 }
766766}
767767
768- /// Fetch and return the raw Markdown content for [messageId] ,
769- /// showing an error dialog on failure.
770- Future <String ?> fetchRawContentWithFeedback ({
771- required BuildContext context,
772- required int messageId,
773- required String errorDialogTitle,
774- }) async {
775- Message ? fetchedMessage;
776- String ? errorMessage;
777- // TODO, supported by reusable code:
778- // - (?) Retry with backoff on plausibly transient errors.
779- // - If request(s) take(s) a long time, show snackbar with cancel
780- // button, like "Still working on quote-and-reply…".
781- // On final failure or success, auto-dismiss the snackbar.
782- final zulipLocalizations = ZulipLocalizations .of (context);
783- try {
784- fetchedMessage = await getMessageCompat (PerAccountStoreWidget .of (context).connection,
785- messageId: messageId,
786- applyMarkdown: false ,
787- );
788- if (fetchedMessage == null ) {
789- errorMessage = zulipLocalizations.errorMessageDoesNotSeemToExist;
790- }
791- } catch (e) {
792- switch (e) {
793- case ZulipApiException ():
794- errorMessage = e.message;
795- // TODO specific messages for common errors, like network errors
796- // (support with reusable code)
797- default :
798- errorMessage = zulipLocalizations.errorCouldNotFetchMessageSource;
799- }
800- }
801-
802- if (! context.mounted) return null ;
803-
804- if (fetchedMessage == null ) {
805- assert (errorMessage != null );
806- // TODO(?) give no feedback on error conditions we expect to
807- // flag centrally in event polling, like invalid auth,
808- // user/realm deactivated. (Support with reusable code.)
809- showErrorDialog (context: context,
810- title: errorDialogTitle, message: errorMessage);
811- }
812-
813- return fetchedMessage? .content;
814- }
815-
816768class QuoteAndReplyButton extends MessageActionSheetMenuItemButton {
817769 QuoteAndReplyButton ({super .key, required super .message, required super .pageContext});
818770
@@ -849,7 +801,7 @@ class QuoteAndReplyButton extends MessageActionSheetMenuItemButton {
849801 message: message,
850802 );
851803
852- final rawContent = await fetchRawContentWithFeedback (
804+ final rawContent = await ZulipAction . fetchRawContentWithFeedback (
853805 context: pageContext,
854806 messageId: message.id,
855807 errorDialogTitle: zulipLocalizations.errorQuotationFailed,
@@ -906,7 +858,7 @@ class CopyMessageTextButton extends MessageActionSheetMenuItemButton {
906858
907859 final zulipLocalizations = ZulipLocalizations .of (pageContext);
908860
909- final rawContent = await fetchRawContentWithFeedback (
861+ final rawContent = await ZulipAction . fetchRawContentWithFeedback (
910862 context: pageContext,
911863 messageId: message.id,
912864 errorDialogTitle: zulipLocalizations.errorCopyingFailed,
@@ -973,7 +925,7 @@ class ShareButton extends MessageActionSheetMenuItemButton {
973925
974926 final zulipLocalizations = ZulipLocalizations .of (pageContext);
975927
976- final rawContent = await fetchRawContentWithFeedback (
928+ final rawContent = await ZulipAction . fetchRawContentWithFeedback (
977929 context: pageContext,
978930 messageId: message.id,
979931 errorDialogTitle: zulipLocalizations.errorSharingFailed,
0 commit comments