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(); set_upload_space_stats();
const $uploaded_files_table = $("#uploaded_files_table").expectOne(); 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, { ListWidget.create<Attachment>($uploaded_files_table, attachments, {
name: "uploaded-files-list", name: "uploaded-files-list",

View File

@@ -154,8 +154,8 @@ export function set_tab(page: string): void {
$("html").scrollTop(0); $("html").scrollTop(0);
} }
$(`#${CSS.escape(page)}-tabs.nav-tabs a`).on("click", function () { $<HTMLAnchorElement>(`#${CSS.escape(page)}-tabs.nav-tabs a`).on("click", function () {
location.hash = (this as HTMLAnchorElement).hash; location.hash = this.hash;
}); });
current_page = page; 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. // This type ensures the mutually exclusive nature of the predicate and filterer options.
type ListWidgetFilterOpts<Item = unknown> = { type ListWidgetFilterOpts<Item = unknown> = {
$element?: JQuery; $element?: JQuery<HTMLInputElement>;
onupdate?: () => void; onupdate?: () => void;
} & ( } & (
| { | {
@@ -359,7 +359,7 @@ export function create<Key = unknown, Item = Key>(
} }
opts.filter?.$element?.on("input.list_widget_filter", function () { 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.set_filter_value(value);
widget.hard_redraw(); widget.hard_redraw();
}); });

View File

@@ -43,7 +43,7 @@ export type RealmDefaultSettings = {
wildcard_mentions_notify: boolean; 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 { export function initialize(params: Record<string, RealmDefaultSettings>): void {
realm_user_settings_defaults = params.realm_user_settings_defaults; realm_user_settings_defaults = params.realm_user_settings_defaults;

View File

@@ -136,7 +136,9 @@ export function populate_emoji(): void {
return ""; return "";
}, },
filter: { filter: {
$element: $emoji_table.closest(".settings-section").find(".search"), $element: $emoji_table
.closest(".settings-section")
.find<HTMLInputElement>("input.search"),
predicate(item, value) { predicate(item, value) {
return item.name.toLowerCase().includes(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 { export function listener_for_preferred_color_scheme_change(callback: () => void): void {
const media_query_list = window.matchMedia("(prefers-color-scheme: dark)"); const media_query_list = window.matchMedia("(prefers-color-scheme: dark)");
// MediaQueryList.addEventListener is missing in Safari < 14 // MediaQueryList.addEventListener is missing in Safari < 14
const listener: () => void = () => { const listener = (): void => {
if ($(":root").hasClass("color-scheme-automatic")) { if ($(":root").hasClass("color-scheme-automatic")) {
callback(); callback();
} }
}; };
if ("addEventListener" in media_query_list) { if (media_query_list.addEventListener) {
media_query_list.addEventListener("change", listener); media_query_list.addEventListener("change", listener);
} else { } 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; 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 { export function initialize_user_settings(params: Record<string, UserSettings>): void {
user_settings = params.user_settings; user_settings = params.user_settings;