stream settings: Simpify code to find input pill.

We also future-proof against having multiple input
tags in the stream-edit container.
This commit is contained in:
Steve Howell
2021-12-15 14:33:56 +00:00
committed by Tim Abbott
parent 585ca1bc26
commit 931a8f28a0
2 changed files with 19 additions and 11 deletions

View File

@@ -137,13 +137,25 @@ test_ui("subscriber_pills", ({override, mock_template}) => {
const sub_settings_selector = `#subscription_overlay .subscription_settings[data-stream-id='${CSS.escape( const sub_settings_selector = `#subscription_overlay .subscription_settings[data-stream-id='${CSS.escape(
denmark.stream_id, denmark.stream_id,
)}']`; )}']`;
const $sub_settings_container = $.create(sub_settings_selector);
$sub_settings_container.find = noop;
$sub_settings_container.find = () => input_field_stub;
const pill_container_stub = $.create(sub_settings_selector + " .pill-container"); const pill_container_stub = $.create("pill-container-stub");
pill_container_stub.find = () => input_field_stub; pill_container_stub.find = () => input_field_stub;
const $sub_settings_container = $.create(sub_settings_selector);
$sub_settings_container.find = (selector) => {
switch (selector) {
case ".colorpicker": {
return undefined;
}
case ".pill-container": {
return pill_container_stub;
}
// No default
}
throw new Error(`unexpected selector ${selector}`);
};
const $subscription_settings = $.create(".subscription_settings"); const $subscription_settings = $.create(".subscription_settings");
$subscription_settings.addClass = noop; $subscription_settings.addClass = noop;
$subscription_settings.closest = () => $subscription_settings; $subscription_settings.closest = () => $subscription_settings;

View File

@@ -401,14 +401,10 @@ function show_subscription_settings(sub) {
return; return;
} }
const container = $( const pill_container = edit_container.find(".pill-container");
`#subscription_overlay .subscription_settings[data-stream-id='${CSS.escape(
stream_id,
)}'] .pill-container`,
);
pill_widget = input_pill.create({ pill_widget = input_pill.create({
container, container: pill_container,
create_item_from_text, create_item_from_text,
get_text_from_item, get_text_from_item,
}); });
@@ -452,7 +448,7 @@ function show_subscription_settings(sub) {
user_group: true, user_group: true,
user: true, user: true,
}; };
pill_typeahead.set_up(edit_container.find(".input"), pill_widget, opts); pill_typeahead.set_up(pill_container.find(".input"), pill_widget, opts);
} }
export function is_notification_setting(setting_label) { export function is_notification_setting(setting_label) {