From e742ebb8e8fb29ed129d94f289fe4006dfbf42e1 Mon Sep 17 00:00:00 2001 From: Steve Howell Date: Sun, 19 Dec 2021 13:10:03 +0000 Subject: [PATCH] refactor: Limit scope of e.target. Now our click handlers get stream_id directly from e.target, and then downstream code is no longer coupled to the event semantics. Note that we'll probably just know the stream_id more directly after future commits. We also remove a little bit of redundant error handling. --- static/js/stream_subscribers_ui.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/static/js/stream_subscribers_ui.js b/static/js/stream_subscribers_ui.js index 2a8a17a63c..27877364bf 100644 --- a/static/js/stream_subscribers_ui.js +++ b/static/js/stream_subscribers_ui.js @@ -68,19 +68,20 @@ function get_stream_id(target) { const row = $(target).closest( ".stream-row, .stream_settings_header, .subscription_settings, .save-button", ); - return Number.parseInt(row.attr("data-stream-id"), 10); -} + const stream_id = Number.parseInt(row.attr("data-stream-id"), 10); -function get_sub_for_target(target) { - const stream_id = get_stream_id(target); if (!stream_id) { blueslip.error("Cannot find stream id for target"); return undefined; } + return stream_id; +} + +function get_sub(stream_id) { const sub = sub_store.get(stream_id); if (!sub) { - blueslip.error("get_sub_for_target() failed id lookup: " + stream_id); + blueslip.error("get_sub() failed id lookup: " + stream_id); return undefined; } return sub; @@ -188,10 +189,9 @@ export function remove_user_from_stream(user_id, sub, success, failure) { }); } -function submit_add_subscriber_form(e) { - const sub = get_sub_for_target(e.target); +function submit_add_subscriber_form(stream_id) { + const sub = get_sub(stream_id); if (!sub) { - blueslip.error(".subscriber_list_add form submit fails"); return; } @@ -267,13 +267,15 @@ export function initialize() { $("#subscriptions_table").on("keyup", ".subscriber_list_add form", (e) => { if (e.key === "Enter") { e.preventDefault(); - submit_add_subscriber_form(e); + const stream_id = get_stream_id(e.target); + submit_add_subscriber_form(stream_id); } }); $("#subscriptions_table").on("submit", ".subscriber_list_add form", (e) => { e.preventDefault(); - submit_add_subscriber_form(e); + const stream_id = get_stream_id(e.target); + submit_add_subscriber_form(stream_id); }); $("#subscriptions_table").on("submit", ".subscriber_list_remove form", (e) => { @@ -282,9 +284,9 @@ export function initialize() { const list_entry = $(e.target).closest("tr"); const target_user_id = Number.parseInt(list_entry.attr("data-subscriber-id"), 10); - const sub = get_sub_for_target(e.target); + const stream_id = get_stream_id(e.target); + const sub = get_sub(stream_id); if (!sub) { - blueslip.error(".subscriber_list_remove form submit fails"); return; } let message;