user_topics_ui: Convert module to TypeScript.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg 2024-05-14 12:49:51 -07:00 committed by Tim Abbott
parent c50b28610c
commit a41d0b16e6
4 changed files with 13 additions and 6 deletions

View File

@ -284,7 +284,7 @@ EXEMPT_FILES = make_set(
"web/src/user_status_ui.ts",
"web/src/user_topic_popover.js",
"web/src/user_topics.ts",
"web/src/user_topics_ui.js",
"web/src/user_topics_ui.ts",
"web/src/views_util.ts",
"web/src/zcommand.ts",
"web/src/zform.js",

View File

@ -45,6 +45,7 @@ export type MessageList = {
can_mark_messages_read: () => boolean;
can_mark_messages_read_without_setting: () => boolean;
rerender_view: () => void;
update_muting_and_rerender: () => void;
prevent_reading: () => void;
resume_reading: () => void;
data: MessageListData;

View File

@ -15,7 +15,7 @@ import * as timerender from "./timerender";
import * as ui_report from "./ui_report";
import {get_time_from_date_muted} from "./util";
type ServerUserTopic = z.infer<typeof user_topic_schema>;
export type ServerUserTopic = z.infer<typeof user_topic_schema>;
export type UserTopic = {
stream_id: number;

View File

@ -1,6 +1,7 @@
import $ from "jquery";
import * as message_lists from "./message_lists";
import type {Message} from "./message_store";
import * as overlays from "./overlays";
import * as popover_menus from "./popover_menus";
import * as recent_view_ui from "./recent_view_ui";
@ -9,8 +10,9 @@ import * as stream_list from "./stream_list";
import * as sub_store from "./sub_store";
import * as unread_ui from "./unread_ui";
import * as user_topics from "./user_topics";
import type {ServerUserTopic} from "./user_topics";
export function handle_topic_updates(user_topic_event) {
export function handle_topic_updates(user_topic_event: ServerUserTopic): void {
// Update the UI after changes in topic visibility policies.
user_topics.set_user_topic(user_topic_event);
popover_menus.get_topic_menu_popover()?.hide();
@ -56,7 +58,11 @@ export function handle_topic_updates(user_topic_event) {
}, 0);
}
export function toggle_topic_visibility_policy(message) {
export function toggle_topic_visibility_policy(message: Message): void {
if (message.type !== "stream") {
return;
}
const stream_id = message.stream_id;
const topic = message.topic;
@ -69,8 +75,8 @@ export function toggle_topic_visibility_policy(message) {
topic,
user_topics.all_visibility_policies.INHERIT,
);
} else if (message.type === "stream") {
if (sub_store.get(stream_id).is_muted) {
} else {
if (sub_store.get(stream_id)?.is_muted) {
user_topics.set_user_topic_visibility_policy(
stream_id,
topic,