compose: Allow message_id to be passed to respond_to_message.

Up until now, the currently selected message was the one that was always
responded to. Now if there's a message_id passed in, we'll use that
message instead, otherwise we'll fall back to the selected message.

This is a prep commit for allowing quoting and replying while editing
a message sent earlier.
This commit is contained in:
N-Shar-ma
2023-10-06 02:20:01 +05:30
committed by Tim Abbott
parent b363999d19
commit 5ba178a54f
2 changed files with 7 additions and 2 deletions

View File

@@ -42,7 +42,8 @@ export function respond_to_message(opts) {
} }
message = message_opts.message; message = message_opts.message;
} else { } else {
message = message_lists.current.selected_message(); message =
message_lists.current.get(opts.message_id) || message_lists.current.selected_message();
if (message === undefined) { if (message === undefined) {
// empty narrow implementation // empty narrow implementation

View File

@@ -263,10 +263,11 @@ test("respond_to_message", ({override, override_rewire, mock_template}) => {
type: "private", type: "private",
sender_id: person.user_id, sender_id: person.user_id,
}; };
override(message_lists.current, "selected_message", () => msg); override(message_lists.current, "get", (id) => (id === 100 ? msg : undefined));
let opts = { let opts = {
reply_type: "personal", reply_type: "personal",
message_id: 100,
}; };
respond_to_message(opts); respond_to_message(opts);
@@ -286,6 +287,7 @@ test("respond_to_message", ({override, override_rewire, mock_template}) => {
stream_id: denmark.stream_id, stream_id: denmark.stream_id,
topic: "python", topic: "python",
}; };
override(message_lists.current, "selected_message", () => msg);
opts = {}; opts = {};
@@ -319,6 +321,7 @@ test("reply_with_mention", ({override, override_rewire, mock_template}) => {
sender_full_name: "Bob Roberts", sender_full_name: "Bob Roberts",
sender_id: 40, sender_id: 40,
}; };
override(message_lists.current, "get", (_id) => undefined);
override(message_lists.current, "selected_message", () => msg); override(message_lists.current, "selected_message", () => msg);
let syntax_to_insert; let syntax_to_insert;
@@ -369,6 +372,7 @@ test("quote_and_reply", ({disallow, override, override_rewire}) => {
override_private_message_recipient({override}); override_private_message_recipient({override});
let selected_message; let selected_message;
override(message_lists.current, "get", (_id) => undefined);
override(message_lists.current, "selected_message", () => selected_message); override(message_lists.current, "selected_message", () => selected_message);
let expected_replacement; let expected_replacement;