ts: Convert ui_util module to TypeScript.

This commit is contained in:
Priyank Patel
2021-06-14 18:29:04 +00:00
committed by Tim Abbott
parent 31893d9e10
commit 3f0110d9c0
3 changed files with 12 additions and 9 deletions

View File

@@ -7,4 +7,5 @@ declare let zulip_test: any;
interface JQuery { interface JQuery {
expectOne(): JQuery; expectOne(): JQuery;
tab(action?: string): this; // From static/third/bootstrap
} }

View File

@@ -3,28 +3,30 @@ import $ from "jquery";
// Add functions to this that have no non-trivial // Add functions to this that have no non-trivial
// dependencies other than jQuery. // dependencies other than jQuery.
export function change_tab_to(tabname) { export function change_tab_to(tabname: string): void {
$(`#gear-menu a[href="${CSS.escape(tabname)}"]`).tab("show"); $(`#gear-menu a[href="${CSS.escape(tabname)}"]`).tab("show");
} }
// https://stackoverflow.com/questions/4233265/contenteditable-set-caret-at-the-end-of-the-text-cross-browser // https://stackoverflow.com/questions/4233265/contenteditable-set-caret-at-the-end-of-the-text-cross-browser
export function place_caret_at_end(el) { export function place_caret_at_end(el: HTMLElement): void {
el.focus(); el.focus();
const range = document.createRange(); const range = document.createRange();
range.selectNodeContents(el); range.selectNodeContents(el);
range.collapse(false); range.collapse(false);
const sel = window.getSelection(); const sel = window.getSelection();
sel.removeAllRanges(); sel?.removeAllRanges();
sel.addRange(range); sel?.addRange(range);
} }
export function blur_active_element() { export function blur_active_element(): void {
// this blurs anything that may perhaps be actively focused on. // this blurs anything that may perhaps be actively focused on.
document.activeElement.blur(); if (document.activeElement instanceof HTMLElement) {
document.activeElement.blur();
}
} }
export function convert_enter_to_click(e) { export function convert_enter_to_click(e: JQuery.KeyDownEvent): void {
if (e.key === "Enter") { if (e.key === "Enter") {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
@@ -32,7 +34,7 @@ export function convert_enter_to_click(e) {
} }
} }
export function update_unread_count_in_dom(unread_count_elem, count) { export function update_unread_count_in_dom(unread_count_elem: JQuery, count: number): void {
// This function is used to update unread count in top left corner // This function is used to update unread count in top left corner
// elements. // elements.
const unread_count_span = unread_count_elem.find(".unread_count"); const unread_count_span = unread_count_elem.find(".unread_count");

View File

@@ -166,7 +166,7 @@ EXEMPT_FILES = {
"static/js/ui_init.js", "static/js/ui_init.js",
"static/js/ui.js", "static/js/ui.js",
"static/js/ui_report.ts", "static/js/ui_report.ts",
"static/js/ui_util.js", "static/js/ui_util.ts",
"static/js/unread_ops.js", "static/js/unread_ops.js",
"static/js/unread_ui.js", "static/js/unread_ui.js",
"static/js/upload_widget.js", "static/js/upload_widget.js",