/
githubmirror
/
zulip
Обзор
Документация
Войти
/
githubmirror
/
zulip
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
web/src/user_settings.ts
96 строк
4 KB
Abhinav Mishra
settings: Rename web_home_view value from "recent_topics" to "recent".
22 янв 2026, 04:01
22 янв 2026, 04:01
c51d54e
Код
Авторство
О чём код?
import * as z from "zod/mini"; import type {StateData} from "./state_data.ts"; export const stream_notification_settings_schema = z.object({ enable_stream_audible_notifications: z.boolean(), enable_stream_desktop_notifications: z.boolean(), enable_stream_email_notifications: z.boolean(), enable_stream_push_notifications: z.boolean(), wildcard_mentions_notify: z.boolean(), }); export type StreamNotificationSettings = z.infer<typeof stream_notification_settings_schema>; export const pm_notification_settings_schema = z.object({ enable_desktop_notifications: z.boolean(), enable_offline_email_notifications: z.boolean(), enable_offline_push_notifications: z.boolean(), enable_sounds: z.boolean(), }); export type PmNotificationSettings = z.infer<typeof pm_notification_settings_schema>; export const followed_topic_notification_settings_schema = z.object({ enable_followed_topic_audible_notifications: z.boolean(), enable_followed_topic_desktop_notifications: z.boolean(), enable_followed_topic_email_notifications: z.boolean(), enable_followed_topic_push_notifications: z.boolean(), enable_followed_topic_wildcard_mentions_notify: z.boolean(), }); export type FollowedTopicNotificationSettings = z.infer< typeof followed_topic_notification_settings_schema >; export const user_settings_schema = z.object({ ...stream_notification_settings_schema.shape, ...pm_notification_settings_schema.shape, ...followed_topic_notification_settings_schema.shape, allow_private_data_export: z.boolean(), automatically_follow_topics_policy: z.number(), automatically_follow_topics_where_mentioned: z.boolean(), automatically_unmute_topics_in_muted_streams_policy: z.number(), available_notification_sounds: z.array(z.string()), color_scheme: z.number(), default_language: z.string(), demote_inactive_streams: z.number(), desktop_icon_count_display: z.number(), display_emoji_reaction_users: z.boolean(), email_address_visibility: z.number(), email_notifications_batching_period_seconds: z.number(), emojiset: z.string(), emojiset_choices: z.array(z.object({key: z.string(), text: z.string()})), enable_digest_emails: z.boolean(), enable_drafts_synchronization: z.boolean(), enable_login_emails: z.boolean(), enable_marketing_emails: z.boolean(), enable_online_push_notifications: z.boolean(), enter_sends: z.boolean(), fluid_layout_width: z.boolean(), hide_ai_features: z.boolean(), high_contrast_mode: z.boolean(), left_side_userlist: z.boolean(), message_content_in_email_notifications: z.boolean(), notification_sound: z.string(), pm_content_in_desktop_notifications: z.boolean(), presence_enabled: z.boolean(), realm_name_in_email_notifications_policy: z.number(), receives_typing_notifications: z.boolean(), resolved_topic_notice_auto_read_policy: z.enum(["always", "except_followed", "never"]), send_private_typing_notifications: z.boolean(), send_read_receipts: z.boolean(), send_stream_typing_notifications: z.boolean(), starred_message_counts: z.boolean(), timezone: z.string(), translate_emoticons: z.boolean(), twenty_four_hour_time: z.boolean(), user_list_style: z.number(), web_animate_image_previews: z.enum(["always", "on_hover", "never"]), web_channel_default_view: z.number(), web_escape_navigates_to_home_view: z.boolean(), web_font_size_px: z.number(), web_home_view: z.enum(["inbox", "recent", "all_messages"]), web_inbox_show_channel_folders: z.boolean(), web_left_sidebar_show_channel_folders: z.boolean(), web_left_sidebar_unreads_count_summary: z.boolean(), web_line_height_percent: z.number(), web_mark_read_on_scroll_policy: z.number(), web_navigate_to_sent_message: z.boolean(), web_stream_unreads_count_display_policy: z.number(), web_suggest_update_timezone: z.boolean(), }); export type UserSettings = z.infer<typeof user_settings_schema>; export let user_settings: UserSettings; export function initialize_user_settings(params: StateData["user_settings"]): void { user_settings = params.user_settings; }