saved_snippets: Fix JQuery error.

This error occurred when opening the saved snippets dropdown while
editing a message caused by `get_offset_to_window()` expecting a
single JQuery element in the selected set. This function was used on
`$(this.dropdown_input_visible_selector)` which is a class selector
and can return multiple elements when multiple saved snippets button
are rendered.

This commit resolves this bug by creating dropdown widgets with unique
`widget_selector` for each saved snippets button.
This commit is contained in:
Vector73
2025-02-06 06:32:56 +00:00
committed by Tim Abbott
parent ee1ee63c53
commit dedd4237a4
3 changed files with 20 additions and 5 deletions

View File

@@ -119,12 +119,10 @@ function item_click_callback(
}
}
export const initialize = (params: StateData["saved_snippets"]): void => {
saved_snippets.initialize(params);
export function setup_saved_snippets_dropdown_widget(widget_selector: string): void {
saved_snippet_dropdown_widget = new dropdown_widget.DropdownWidget({
widget_name: "saved_snippets",
widget_selector: ".saved_snippets_widget",
widget_selector,
get_options: saved_snippets.get_options_for_dropdown_widget,
item_click_callback,
$events_container: $("body"),
@@ -142,4 +140,9 @@ export const initialize = (params: StateData["saved_snippets"]): void => {
},
});
saved_snippet_dropdown_widget.setup();
}
export const initialize = (params: StateData["saved_snippets"]): void => {
saved_snippets.initialize(params);
setup_saved_snippets_dropdown_widget(".saved-snippets-composebox-widget");
};