diff --git a/web/src/compose_reply.js b/web/src/compose_reply.js index 22ee8db791..e12c947e67 100644 --- a/web/src/compose_reply.js +++ b/web/src/compose_reply.js @@ -42,7 +42,8 @@ export function respond_to_message(opts) { } message = message_opts.message; } else { - message = message_lists.current.selected_message(); + message = + message_lists.current.get(opts.message_id) || message_lists.current.selected_message(); if (message === undefined) { // empty narrow implementation diff --git a/web/tests/compose_actions.test.js b/web/tests/compose_actions.test.js index db61c981cc..e4c8e8e0bb 100644 --- a/web/tests/compose_actions.test.js +++ b/web/tests/compose_actions.test.js @@ -263,10 +263,11 @@ test("respond_to_message", ({override, override_rewire, mock_template}) => { type: "private", sender_id: person.user_id, }; - override(message_lists.current, "selected_message", () => msg); + override(message_lists.current, "get", (id) => (id === 100 ? msg : undefined)); let opts = { reply_type: "personal", + message_id: 100, }; respond_to_message(opts); @@ -286,6 +287,7 @@ test("respond_to_message", ({override, override_rewire, mock_template}) => { stream_id: denmark.stream_id, topic: "python", }; + override(message_lists.current, "selected_message", () => msg); opts = {}; @@ -319,6 +321,7 @@ test("reply_with_mention", ({override, override_rewire, mock_template}) => { sender_full_name: "Bob Roberts", sender_id: 40, }; + override(message_lists.current, "get", (_id) => undefined); override(message_lists.current, "selected_message", () => msg); let syntax_to_insert; @@ -369,6 +372,7 @@ test("quote_and_reply", ({disallow, override, override_rewire}) => { override_private_message_recipient({override}); let selected_message; + override(message_lists.current, "get", (_id) => undefined); override(message_lists.current, "selected_message", () => selected_message); let expected_replacement;