web: Avoid several unchecked TypeScript casts.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2023-09-08 13:52:44 -07:00
committed by Tim Abbott
parent 4650b789ce
commit 3d7b9e622d
7 changed files with 13 additions and 11 deletions

View File

@@ -129,7 +129,7 @@ function render_attachments_ui(): void {
set_upload_space_stats();
const $uploaded_files_table = $("#uploaded_files_table").expectOne();
const $search_input = $("#upload_file_search");
const $search_input = $<HTMLInputElement>("input#upload_file_search");
ListWidget.create<Attachment>($uploaded_files_table, attachments, {
name: "uploaded-files-list",

View File

@@ -154,8 +154,8 @@ export function set_tab(page: string): void {
$("html").scrollTop(0);
}
$(`#${CSS.escape(page)}-tabs.nav-tabs a`).on("click", function () {
location.hash = (this as HTMLAnchorElement).hash;
$<HTMLAnchorElement>(`#${CSS.escape(page)}-tabs.nav-tabs a`).on("click", function () {
location.hash = this.hash;
});
current_page = page;

View File

@@ -20,7 +20,7 @@ type ListWidgetMeta<Key = unknown, Item = Key> = {
// This type ensures the mutually exclusive nature of the predicate and filterer options.
type ListWidgetFilterOpts<Item = unknown> = {
$element?: JQuery;
$element?: JQuery<HTMLInputElement>;
onupdate?: () => void;
} & (
| {
@@ -359,7 +359,7 @@ export function create<Key = unknown, Item = Key>(
}
opts.filter?.$element?.on("input.list_widget_filter", function () {
const value = (this as HTMLInputElement).value.toLocaleLowerCase();
const value = this.value.toLocaleLowerCase();
widget.set_filter_value(value);
widget.hard_redraw();
});

View File

@@ -43,7 +43,7 @@ export type RealmDefaultSettings = {
wildcard_mentions_notify: boolean;
};
export let realm_user_settings_defaults = {} as RealmDefaultSettings;
export let realm_user_settings_defaults: RealmDefaultSettings;
export function initialize(params: Record<string, RealmDefaultSettings>): void {
realm_user_settings_defaults = params.realm_user_settings_defaults;

View File

@@ -136,7 +136,9 @@ export function populate_emoji(): void {
return "";
},
filter: {
$element: $emoji_table.closest(".settings-section").find(".search"),
$element: $emoji_table
.closest(".settings-section")
.find<HTMLInputElement>("input.search"),
predicate(item, value) {
return item.name.toLowerCase().includes(value);
},

View File

@@ -110,14 +110,14 @@ export async function play_audio(elem: HTMLVideoElement): Promise<void> {
export function listener_for_preferred_color_scheme_change(callback: () => void): void {
const media_query_list = window.matchMedia("(prefers-color-scheme: dark)");
// MediaQueryList.addEventListener is missing in Safari < 14
const listener: () => void = () => {
const listener = (): void => {
if ($(":root").hasClass("color-scheme-automatic")) {
callback();
}
};
if ("addEventListener" in media_query_list) {
if (media_query_list.addEventListener) {
media_query_list.addEventListener("change", listener);
} else {
(media_query_list as MediaQueryList).addListener(listener);
media_query_list.addListener(listener);
}
}

View File

@@ -57,7 +57,7 @@ export type UserSettings = (StreamNotificationSettings &
send_read_receipts: boolean;
};
export let user_settings = {} as UserSettings;
export let user_settings: UserSettings;
export function initialize_user_settings(params: Record<string, UserSettings>): void {
user_settings = params.user_settings;