settings: Do not store pill widgets for new groups in map.

Instead of storing setting pill widgets for new groups
in group_setting_widget_map, we just use variable in the
user_group_create file to store the widget.

This helps in accessing the widget with the key having
"new_group_" as prefix which we want to avoid as a pattern.

Note that the classes and IDs in templates still use
"new_group_" prefix.
This commit is contained in:
Sahil Batra
2024-10-03 08:44:52 +05:30
committed by Tim Abbott
parent 698f3cf41b
commit 74fb851958
2 changed files with 11 additions and 9 deletions

View File

@@ -1404,7 +1404,6 @@ export function initialize_disable_btn_hint_popover(
const group_setting_widget_map = new Map<string, GroupSettingPillContainer | null>([ const group_setting_widget_map = new Map<string, GroupSettingPillContainer | null>([
["can_manage_group", null], ["can_manage_group", null],
["new_group_can_manage_group", null],
]); ]);
export function get_group_setting_widget(setting_name: string): GroupSettingPillContainer | null { export function get_group_setting_widget(setting_name: string): GroupSettingPillContainer | null {
@@ -1459,7 +1458,7 @@ export function create_group_setting_widget({
setting_name: group_setting_name; setting_name: group_setting_name;
setting_type: "realm" | "stream" | "group"; setting_type: "realm" | "stream" | "group";
group?: UserGroup; group?: UserGroup;
}): void { }): GroupSettingPillContainer {
const pill_widget = group_setting_pill.create_pills( const pill_widget = group_setting_pill.create_pills(
$pill_container, $pill_container,
setting_name, setting_name,
@@ -1472,9 +1471,7 @@ export function create_group_setting_widget({
}; };
group_setting_pill.set_up_pill_typeahead({pill_widget, $pill_container, opts}); group_setting_pill.set_up_pill_typeahead({pill_widget, $pill_container, opts});
if (group === undefined) { if (group !== undefined) {
group_setting_widget_map.set("new_group_" + setting_name, pill_widget);
} else {
group_setting_widget_map.set(setting_name, pill_widget); group_setting_widget_map.set(setting_name, pill_widget);
} }
@@ -1502,4 +1499,6 @@ export function create_group_setting_widget({
set_group_setting_widget_value(pill_widget, default_group_id); set_group_setting_widget_value(pill_widget, default_group_id);
} }
} }
return pill_widget;
} }

View File

@@ -7,6 +7,7 @@ import * as keydown_util from "./keydown_util";
import * as loading from "./loading"; import * as loading from "./loading";
import {page_params} from "./page_params"; import {page_params} from "./page_params";
import * as settings_components from "./settings_components"; import * as settings_components from "./settings_components";
import type {GroupSettingPillContainer} from "./typeahead_helper";
import * as ui_report from "./ui_report"; import * as ui_report from "./ui_report";
import * as user_group_components from "./user_group_components"; import * as user_group_components from "./user_group_components";
import * as user_group_create_members from "./user_group_create_members"; import * as user_group_create_members from "./user_group_create_members";
@@ -27,6 +28,8 @@ export function get_name(): string | undefined {
return created_group_name; return created_group_name;
} }
let can_manage_group_widget: GroupSettingPillContainer | undefined;
class UserGroupMembershipError { class UserGroupMembershipError {
report_no_members_to_user_group(): void { report_no_members_to_user_group(): void {
$("#user_group_membership_error").text( $("#user_group_membership_error").text(
@@ -150,9 +153,9 @@ function create_user_group(): void {
} }
const user_ids = user_group_create_members.get_principals(); const user_ids = user_group_create_members.get_principals();
const pill_widget = settings_components.get_group_setting_widget("new_group_can_manage_group"); assert(can_manage_group_widget !== undefined);
assert(pill_widget !== null); const can_manage_group =
const can_manage_group = settings_components.get_group_setting_widget_value(pill_widget); settings_components.get_group_setting_widget_value(can_manage_group_widget);
assert(settings_components.new_group_can_mention_group_widget !== null); assert(settings_components.new_group_can_mention_group_widget !== null);
const can_mention_group_value = settings_components.new_group_can_mention_group_widget.value(); const can_mention_group_value = settings_components.new_group_can_mention_group_widget.value();
@@ -240,7 +243,7 @@ export function set_up_handlers(): void {
}); });
const $pill_container = $container.find(".can-manage-group-container .pill-container"); const $pill_container = $container.find(".can-manage-group-container .pill-container");
settings_components.create_group_setting_widget({ can_manage_group_widget = settings_components.create_group_setting_widget({
$pill_container, $pill_container,
setting_name: "can_manage_group", setting_name: "can_manage_group",
setting_type: "group", setting_type: "group",