settings: Convert module to typescript.

This commit is contained in:
evykassirer
2024-11-24 18:22:59 -08:00
committed by Tim Abbott
parent 278d7405d8
commit 4ff7bc16bc
10 changed files with 39 additions and 45 deletions

View File

@@ -203,7 +203,7 @@ EXEMPT_FILES = make_set(
"web/src/sent_messages.ts",
"web/src/sentry.ts",
"web/src/server_events.js",
"web/src/settings.js",
"web/src/settings.ts",
"web/src/settings_account.ts",
"web/src/settings_bots.ts",
"web/src/settings_components.ts",

View File

@@ -10,7 +10,7 @@ import {$t, get_language_name, language_list} from "./i18n.ts";
import {page_params} from "./page_params.ts";
import * as people from "./people.ts";
import {realm_user_settings_defaults} from "./realm_user_settings_defaults.ts";
import * as settings from "./settings.js";
import * as settings from "./settings.ts";
import * as settings_bots from "./settings_bots.ts";
import * as settings_components from "./settings_components.ts";
import * as settings_config from "./settings_config.ts";

View File

@@ -36,7 +36,7 @@ function current_dialog_widget_selector(): string {
* 2) We attach the DOM for the modal to the body element
* to avoid interference from other elements.
*
* 3) For settings, we have a click handler in settings.js
* 3) For settings, we have a click handler in settings.ts
* that will close the dialog via modals.close_active.
*
* 4) We assume that since this is a modal, you will

View File

@@ -22,7 +22,7 @@ import * as popovers from "./popovers.ts";
import * as recent_view_ui from "./recent_view_ui.ts";
import * as recent_view_util from "./recent_view_util.ts";
import * as scheduled_messages_overlay_ui from "./scheduled_messages_overlay_ui.ts";
import * as settings from "./settings.js";
import * as settings from "./settings.ts";
import * as settings_panel_menu from "./settings_panel_menu.ts";
import * as settings_toggle from "./settings_toggle.ts";
import * as sidebar_ui from "./sidebar_ui.ts";

View File

@@ -24,34 +24,7 @@ import {current_user, realm} from "./state_data.ts";
import * as timerender from "./timerender.ts";
import {user_settings} from "./user_settings.ts";
export let settings_label;
function setup_settings_label() {
settings_label = {
// settings_notification
allow_private_data_export: $t({
defaultMessage: "Let administrators export my private data",
}),
presence_enabled: $t({
defaultMessage: "Display my availability to other users",
}),
presence_enabled_parens_text: $t({defaultMessage: "invisible mode off"}),
send_stream_typing_notifications: $t({
defaultMessage: "Let recipients see when I'm typing messages in channels",
}),
send_private_typing_notifications: $t({
defaultMessage: "Let recipients see when I'm typing direct messages",
}),
send_read_receipts: $t({
defaultMessage: "Let others see when I've read messages",
}),
...settings_config.notification_settings_labels,
...settings_config.preferences_settings_labels,
};
}
function get_parsed_date_of_joining() {
function get_parsed_date_of_joining(): string {
const user_date_joined = people.get_by_user_id(current_user.user_id).date_joined;
return timerender.get_localized_date_or_time_for_format(
parseISO(user_date_joined),
@@ -59,14 +32,14 @@ function get_parsed_date_of_joining() {
);
}
function user_can_change_password() {
function user_can_change_password(): boolean {
if (settings_data.user_email_not_configured()) {
return false;
}
return realm.realm_email_auth_enabled;
}
export function update_lock_icon_in_sidebar() {
export function update_lock_icon_in_sidebar(): void {
if (current_user.is_owner) {
$(".org-settings-list .locked").hide();
return;
@@ -88,8 +61,29 @@ export function update_lock_icon_in_sidebar() {
}
}
export function build_page() {
setup_settings_label();
export function build_page(): void {
const settings_label = {
// settings_notification
allow_private_data_export: $t({
defaultMessage: "Let administrators export my private data",
}),
presence_enabled: $t({
defaultMessage: "Display my availability to other users",
}),
presence_enabled_parens_text: $t({defaultMessage: "invisible mode off"}),
send_stream_typing_notifications: $t({
defaultMessage: "Let recipients see when I'm typing messages in channels",
}),
send_private_typing_notifications: $t({
defaultMessage: "Let recipients see when I'm typing direct messages",
}),
send_read_receipts: $t({
defaultMessage: "Let others see when I've read messages",
}),
...settings_config.notification_settings_labels,
...settings_config.preferences_settings_labels,
};
const rendered_settings_tab = render_settings_tab({
full_name: people.my_full_name(),
@@ -157,7 +151,7 @@ export function build_page() {
common.adjust_mac_kbd_tags("#user_enter_sends_label kbd");
}
export function open_settings_overlay() {
export function open_settings_overlay(): void {
overlays.open_overlay({
name: "settings",
$overlay: $("#settings_overlay_container"),
@@ -169,7 +163,7 @@ export function open_settings_overlay() {
});
}
export function launch(section) {
export function launch(section: string): void {
settings_sections.reset_sections();
open_settings_overlay();
@@ -179,7 +173,7 @@ export function launch(section) {
settings_toggle.goto("settings");
}
export function initialize() {
export function initialize(): void {
const rendered_settings_overlay = render_settings_overlay({
is_owner: current_user.is_owner,
is_admin: current_user.is_admin,

View File

@@ -751,7 +751,7 @@ export function set_up(): void {
);
$("#user_deactivate_account_button").on("click", (e) => {
// This click event must not get propagated to parent container otherwise the modal
// will not show up because of a call to `close_active` in `settings.js`.
// will not show up because of a call to `close_active` in `settings.ts`.
e.preventDefault();
e.stopPropagation();

View File

@@ -260,7 +260,7 @@ export function on_load_success(
}
$(".admin_invites_table").on("click", ".revoke", function (this: HTMLElement, e) {
// This click event must not get propagated to parent container otherwise the modal
// will not show up because of a call to `close_active` in `settings.js`.
// will not show up because of a call to `close_active` in `settings.ts`.
e.preventDefault();
e.stopPropagation();
const $row = $(this).closest(".invite_row");
@@ -294,7 +294,7 @@ export function on_load_success(
$(".admin_invites_table").on("click", ".resend", function (this: HTMLElement, e) {
// This click event must not get propagated to parent container otherwise the modal
// will not show up because of a call to `close_active` in `settings.js`.
// will not show up because of a call to `close_active` in `settings.ts`.
e.preventDefault();
e.stopPropagation();

View File

@@ -595,7 +595,7 @@ function start_data_load(): void {
function handle_deactivation($tbody: JQuery): void {
$tbody.on("click", ".deactivate", (e) => {
// This click event must not get propagated to parent container otherwise the modal
// will not show up because of a call to `close_active` in `settings.js`.
// will not show up because of a call to `close_active` in `settings.ts`.
e.preventDefault();
e.stopPropagation();

View File

@@ -103,7 +103,7 @@ import * as scroll_bar from "./scroll_bar.ts";
import * as scroll_util from "./scroll_util.ts";
import * as search from "./search.ts";
import * as server_events from "./server_events.js";
import * as settings from "./settings.js";
import * as settings from "./settings.ts";
import * as settings_data from "./settings_data.ts";
import * as settings_notifications from "./settings_notifications.ts";
import * as settings_panel_menu from "./settings_panel_menu.ts";

View File

@@ -13,7 +13,7 @@ import * as narrow_state from "./narrow_state.ts";
import * as navbar_alerts from "./navbar_alerts.ts";
import * as people from "./people.ts";
import * as pm_list from "./pm_list.ts";
import * as settings from "./settings.js";
import * as settings from "./settings.ts";
import * as settings_account from "./settings_account.ts";
import * as settings_config from "./settings_config.ts";
import * as settings_exports from "./settings_exports.ts";