ts: Migrate gear_menu.js to TypeScript.

Includes adding various missing values to page_params.
This commit is contained in:
Adarsh Tiwari
2023-03-29 22:06:52 +05:30
committed by GitHub
parent de8148bc9e
commit 78fdb6135a
3 changed files with 17 additions and 6 deletions

View File

@@ -88,7 +88,7 @@ EXEMPT_FILES = make_set(
"web/src/feature_flags.ts", "web/src/feature_flags.ts",
"web/src/feedback_widget.js", "web/src/feedback_widget.js",
"web/src/flatpickr.js", "web/src/flatpickr.js",
"web/src/gear_menu.js", "web/src/gear_menu.ts",
"web/src/giphy.js", "web/src/giphy.js",
"web/src/global.d.ts", "web/src/global.d.ts",
"web/src/hash_util.js", "web/src/hash_util.js",

View File

@@ -79,7 +79,7 @@ The click handler uses "[data-overlay-trigger]" as
the selector and then calls browser_history.go_to_location. the selector and then calls browser_history.go_to_location.
*/ */
export function version_display_string() { export function version_display_string(): string {
const version = page_params.zulip_version; const version = page_params.zulip_version;
const is_fork = page_params.zulip_merge_base && page_params.zulip_merge_base !== version; const is_fork = page_params.zulip_merge_base && page_params.zulip_merge_base !== version;
@@ -110,7 +110,7 @@ export function version_display_string() {
return $t({defaultMessage: "Zulip Server {display_version}"}, {display_version}); return $t({defaultMessage: "Zulip Server {display_version}"}, {display_version});
} }
export function initialize() { export function initialize(): void {
const rendered_gear_menu = render_gear_menu({ const rendered_gear_menu = render_gear_menu({
realm_name: page_params.realm_name, realm_name: page_params.realm_name,
realm_uri: new URL(page_params.realm_uri).hostname, realm_uri: new URL(page_params.realm_uri).hostname,
@@ -138,17 +138,17 @@ export function initialize() {
$("#navbar-buttons").html(rendered_gear_menu); $("#navbar-buttons").html(rendered_gear_menu);
} }
export function open() { export function open(): void {
$("#settings-dropdown").trigger("click"); $("#settings-dropdown").trigger("click");
// there are invisible li tabs, which should not be clicked. // there are invisible li tabs, which should not be clicked.
$("#gear-menu").find("li:not(.invisible) a").eq(0).trigger("focus"); $("#gear-menu").find("li:not(.invisible) a").eq(0).trigger("focus");
} }
export function is_open() { export function is_open(): boolean {
return $(".dropdown").hasClass("open"); return $(".dropdown").hasClass("open");
} }
export function close() { export function close(): void {
if (is_open()) { if (is_open()) {
$(".dropdown").removeClass("open"); $(".dropdown").removeClass("open");
} }

View File

@@ -2,6 +2,8 @@ import $ from "jquery";
const t1 = performance.now(); const t1 = performance.now();
export const page_params: { export const page_params: {
apps_page_url: string;
corporate_enabled: boolean;
language_list: { language_list: {
code: string; code: string;
locale: string; locale: string;
@@ -14,6 +16,7 @@ export const page_params: {
is_moderator: boolean; is_moderator: boolean;
is_owner: boolean; is_owner: boolean;
is_spectator: boolean; is_spectator: boolean;
promote_sponsoring_zulip: boolean;
realm_add_custom_emoji_policy: number; realm_add_custom_emoji_policy: number;
realm_avatar_changes_disabled: boolean; realm_avatar_changes_disabled: boolean;
realm_create_private_stream_policy: number; realm_create_private_stream_policy: number;
@@ -27,6 +30,9 @@ export const page_params: {
realm_invite_to_stream_policy: number; realm_invite_to_stream_policy: number;
realm_move_messages_between_streams_policy: number; realm_move_messages_between_streams_policy: number;
realm_name_changes_disabled: boolean; realm_name_changes_disabled: boolean;
realm_name: string;
realm_org_type: number;
realm_plan_type: number;
realm_push_notifications_enabled: boolean; realm_push_notifications_enabled: boolean;
realm_sentry_key: string | undefined; realm_sentry_key: string | undefined;
realm_uri: string; realm_uri: string;
@@ -35,15 +41,20 @@ export const page_params: {
request_language: string; request_language: string;
server_avatar_changes_disabled: boolean; server_avatar_changes_disabled: boolean;
server_name_changes_disabled: boolean; server_name_changes_disabled: boolean;
server_needs_upgrade: boolean;
server_sentry_dsn: string | undefined; server_sentry_dsn: string | undefined;
server_sentry_environment: string | undefined; server_sentry_environment: string | undefined;
server_sentry_sample_rate: number | undefined; server_sentry_sample_rate: number | undefined;
server_sentry_trace_rate: number | undefined; server_sentry_trace_rate: number | undefined;
server_web_public_streams_enabled: boolean; server_web_public_streams_enabled: boolean;
show_billing: boolean;
show_plans: boolean;
show_webathena: boolean;
translation_data: Record<string, string>; translation_data: Record<string, string>;
user_id: number | undefined; user_id: number | undefined;
webpack_public_path: string; webpack_public_path: string;
zulip_plan_is_not_limited: boolean; zulip_plan_is_not_limited: boolean;
zulip_merge_base: string;
zulip_version: string; zulip_version: string;
muted_users: {id: number; timestamp: number}[]; muted_users: {id: number; timestamp: number}[];
} = $("#page-params").remove().data("params"); } = $("#page-params").remove().data("params");