diff --git a/web/src/submessage.js b/web/src/submessage.js index 1559b737cc..5924c726d6 100644 --- a/web/src/submessage.js +++ b/web/src/submessage.js @@ -50,9 +50,10 @@ export function do_process_submessages(in_opts) { if (!events) { return; } + const [widget_event, ...inbound_events] = events; - if (events[0].sender_id !== message.sender_id) { - blueslip.warn(`User ${events[0].sender_id} tried to hijack message ${message.id}`); + if (widget_event.sender_id !== message.sender_id) { + blueslip.warn(`User ${widget_event.sender_id} tried to hijack message ${message.id}`); return; } @@ -60,7 +61,7 @@ export function do_process_submessages(in_opts) { // Right now, our only use of submessages is widgets. - const data = events[0].data; + const data = widget_event.data; if (data === undefined) { return; @@ -77,7 +78,7 @@ export function do_process_submessages(in_opts) { widgetize.activate({ widget_type, extra_data: data.extra_data, - events, + events: inbound_events, $row, message, post_to_server, diff --git a/web/src/widgetize.ts b/web/src/widgetize.ts index 61263630b0..58f8c54a30 100644 --- a/web/src/widgetize.ts +++ b/web/src/widgetize.ts @@ -58,8 +58,6 @@ export function activate(in_opts: WidgetOptions): void { const message = in_opts.message; const post_to_server = in_opts.post_to_server; - events.shift(); - if (!widgets.has(widget_type)) { if (widget_type === "tictactoe") { return; // don't warn for deleted legacy widget diff --git a/web/tests/widgetize.test.js b/web/tests/widgetize.test.js index e4d0b71ab5..db74c92619 100644 --- a/web/tests/widgetize.test.js +++ b/web/tests/widgetize.test.js @@ -46,8 +46,6 @@ const fake_poll_widget = { assert.ok($widget_elem.hasClass("widget-content")); $widget_elem.handle_events = (e) => { is_event_handled = true; - assert.notDeepStrictEqual(e, events); - events.shift(); assert.deepStrictEqual(e, events); }; data.callback("test_data");