mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	refactor: Move maybe_get_stream_name from stream_data to sub_store.
				
					
				
			This commit moves `maybe_get_stream_name` function from `stream_data` to `sub_store` as it didn't had any dependency on `stream_data` and it also helps us to cut off dependency on `stream_data` for some of the modules including `user_topics`.
This commit is contained in:
		@@ -4,6 +4,7 @@ import * as blueslip from "./blueslip";
 | 
				
			|||||||
import * as compose_pm_pill from "./compose_pm_pill";
 | 
					import * as compose_pm_pill from "./compose_pm_pill";
 | 
				
			||||||
import * as compose_recipient from "./compose_recipient";
 | 
					import * as compose_recipient from "./compose_recipient";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as stream_data from "./stream_data";
 | 
				
			||||||
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let message_type = false; // 'stream', 'private', or false-y
 | 
					let message_type = false; // 'stream', 'private', or false-y
 | 
				
			||||||
let recipient_edited_manually = false;
 | 
					let recipient_edited_manually = false;
 | 
				
			||||||
@@ -74,7 +75,7 @@ function get_or_set(fieldname, keep_leading_whitespace, no_trim) {
 | 
				
			|||||||
export function stream_name() {
 | 
					export function stream_name() {
 | 
				
			||||||
    const stream_id = compose_recipient.selected_recipient_id;
 | 
					    const stream_id = compose_recipient.selected_recipient_id;
 | 
				
			||||||
    if (typeof stream_id === "number") {
 | 
					    if (typeof stream_id === "number") {
 | 
				
			||||||
        return stream_data.maybe_get_stream_name(stream_id) || "";
 | 
					        return sub_store.maybe_get_stream_name(stream_id) || "";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return "";
 | 
					    return "";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -100,7 +101,7 @@ export function set_compose_recipient_id(value) {
 | 
				
			|||||||
    let recipient_id = compose_recipient.DIRECT_MESSAGE_ID;
 | 
					    let recipient_id = compose_recipient.DIRECT_MESSAGE_ID;
 | 
				
			||||||
    if (typeof value === "number") {
 | 
					    if (typeof value === "number") {
 | 
				
			||||||
        // value is stream name
 | 
					        // value is stream name
 | 
				
			||||||
        recipient_id = stream_data.maybe_get_stream_name(value) || "";
 | 
					        recipient_id = sub_store.maybe_get_stream_name(value) || "";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    compose_recipient.set_selected_recipient_id(recipient_id);
 | 
					    compose_recipient.set_selected_recipient_id(recipient_id);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,7 @@ import * as people from "./people";
 | 
				
			|||||||
import * as settings_config from "./settings_config";
 | 
					import * as settings_config from "./settings_config";
 | 
				
			||||||
import * as settings_data from "./settings_data";
 | 
					import * as settings_data from "./settings_data";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as stream_data from "./stream_data";
 | 
				
			||||||
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
import * as util from "./util";
 | 
					import * as util from "./util";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let user_acknowledged_wildcard = false;
 | 
					let user_acknowledged_wildcard = false;
 | 
				
			||||||
@@ -231,7 +232,7 @@ export function warn_if_topic_resolved(topic_changed) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function show_wildcard_warnings(opts) {
 | 
					function show_wildcard_warnings(opts) {
 | 
				
			||||||
    const subscriber_count = peer_data.get_subscriber_count(opts.stream_id) || 0;
 | 
					    const subscriber_count = peer_data.get_subscriber_count(opts.stream_id) || 0;
 | 
				
			||||||
    const stream_name = stream_data.maybe_get_stream_name(opts.stream_id);
 | 
					    const stream_name = sub_store.maybe_get_stream_name(opts.stream_id);
 | 
				
			||||||
    const is_edit_container = opts.$banner_container.closest(".edit_form_banners").length > 0;
 | 
					    const is_edit_container = opts.$banner_container.closest(".edit_form_banners").length > 0;
 | 
				
			||||||
    const classname = compose_banner.CLASSNAMES.wildcard_warning;
 | 
					    const classname = compose_banner.CLASSNAMES.wildcard_warning;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@ import * as internal_url from "../shared/src/internal_url";
 | 
				
			|||||||
import {page_params} from "./page_params";
 | 
					import {page_params} from "./page_params";
 | 
				
			||||||
import * as people from "./people";
 | 
					import * as people from "./people";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as stream_data from "./stream_data";
 | 
				
			||||||
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function get_hash_category(hash) {
 | 
					export function get_hash_category(hash) {
 | 
				
			||||||
    // given "#streams/subscribed", returns "streams"
 | 
					    // given "#streams/subscribed", returns "streams"
 | 
				
			||||||
@@ -91,12 +92,12 @@ export function decode_operand(operator, operand) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export function by_stream_url(stream_id) {
 | 
					export function by_stream_url(stream_id) {
 | 
				
			||||||
    // Wrapper for web use of internal_url.by_stream_url
 | 
					    // Wrapper for web use of internal_url.by_stream_url
 | 
				
			||||||
    return internal_url.by_stream_url(stream_id, stream_data.maybe_get_stream_name);
 | 
					    return internal_url.by_stream_url(stream_id, sub_store.maybe_get_stream_name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function by_stream_topic_url(stream_id, topic) {
 | 
					export function by_stream_topic_url(stream_id, topic) {
 | 
				
			||||||
    // Wrapper for web use of internal_url.by_stream_topic_url
 | 
					    // Wrapper for web use of internal_url.by_stream_topic_url
 | 
				
			||||||
    return internal_url.by_stream_topic_url(stream_id, topic, stream_data.maybe_get_stream_name);
 | 
					    return internal_url.by_stream_topic_url(stream_id, topic, sub_store.maybe_get_stream_name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Encodes an operator list into the
 | 
					// Encodes an operator list into the
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,6 @@ import * as popovers from "./popovers";
 | 
				
			|||||||
import * as rendered_markdown from "./rendered_markdown";
 | 
					import * as rendered_markdown from "./rendered_markdown";
 | 
				
			||||||
import * as rows from "./rows";
 | 
					import * as rows from "./rows";
 | 
				
			||||||
import * as spectators from "./spectators";
 | 
					import * as spectators from "./spectators";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					 | 
				
			||||||
import * as sub_store from "./sub_store";
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
import * as timerender from "./timerender";
 | 
					import * as timerender from "./timerender";
 | 
				
			||||||
import * as ui_report from "./ui_report";
 | 
					import * as ui_report from "./ui_report";
 | 
				
			||||||
@@ -72,10 +71,10 @@ export function fetch_and_render_message_history(message) {
 | 
				
			|||||||
                    if (!sub) {
 | 
					                    if (!sub) {
 | 
				
			||||||
                        item.prev_stream = $t({defaultMessage: "Unknown stream"});
 | 
					                        item.prev_stream = $t({defaultMessage: "Unknown stream"});
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
                        item.prev_stream = stream_data.maybe_get_stream_name(msg.prev_stream);
 | 
					                        item.prev_stream = sub_store.maybe_get_stream_name(msg.prev_stream);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (prev_stream_item !== null) {
 | 
					                    if (prev_stream_item !== null) {
 | 
				
			||||||
                        prev_stream_item.new_stream = stream_data.maybe_get_stream_name(
 | 
					                        prev_stream_item.new_stream = sub_store.maybe_get_stream_name(
 | 
				
			||||||
                            msg.prev_stream,
 | 
					                            msg.prev_stream,
 | 
				
			||||||
                        );
 | 
					                        );
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@@ -98,10 +97,10 @@ export function fetch_and_render_message_history(message) {
 | 
				
			|||||||
                    if (!sub) {
 | 
					                    if (!sub) {
 | 
				
			||||||
                        item.prev_stream = $t({defaultMessage: "Unknown stream"});
 | 
					                        item.prev_stream = $t({defaultMessage: "Unknown stream"});
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
                        item.prev_stream = stream_data.maybe_get_stream_name(msg.prev_stream);
 | 
					                        item.prev_stream = sub_store.maybe_get_stream_name(msg.prev_stream);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (prev_stream_item !== null) {
 | 
					                    if (prev_stream_item !== null) {
 | 
				
			||||||
                        prev_stream_item.new_stream = stream_data.maybe_get_stream_name(
 | 
					                        prev_stream_item.new_stream = sub_store.maybe_get_stream_name(
 | 
				
			||||||
                            msg.prev_stream,
 | 
					                            msg.prev_stream,
 | 
				
			||||||
                        );
 | 
					                        );
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@@ -119,7 +118,7 @@ export function fetch_and_render_message_history(message) {
 | 
				
			|||||||
                prev_time = time;
 | 
					                prev_time = time;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (prev_stream_item !== null) {
 | 
					            if (prev_stream_item !== null) {
 | 
				
			||||||
                prev_stream_item.new_stream = stream_data.maybe_get_stream_name(message.stream_id);
 | 
					                prev_stream_item.new_stream = sub_store.maybe_get_stream_name(message.stream_id);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            $("#message-history").attr("data-message-id", message.id);
 | 
					            $("#message-history").attr("data-message-id", message.id);
 | 
				
			||||||
            $("#message-history").html(
 | 
					            $("#message-history").html(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ import {$t, $t_html} from "./i18n";
 | 
				
			|||||||
import * as people from "./people";
 | 
					import * as people from "./people";
 | 
				
			||||||
import * as realm_playground from "./realm_playground";
 | 
					import * as realm_playground from "./realm_playground";
 | 
				
			||||||
import * as rtl from "./rtl";
 | 
					import * as rtl from "./rtl";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
import * as timerender from "./timerender";
 | 
					import * as timerender from "./timerender";
 | 
				
			||||||
import {show_copied_confirmation} from "./tippyjs";
 | 
					import {show_copied_confirmation} from "./tippyjs";
 | 
				
			||||||
import * as user_groups from "./user_groups";
 | 
					import * as user_groups from "./user_groups";
 | 
				
			||||||
@@ -130,10 +130,10 @@ export const update_elements = ($content) => {
 | 
				
			|||||||
        if (stream_id && !$(this).find(".highlight").length) {
 | 
					        if (stream_id && !$(this).find(".highlight").length) {
 | 
				
			||||||
            // Display the current name for stream if it is not
 | 
					            // Display the current name for stream if it is not
 | 
				
			||||||
            // being displayed in search highlight.
 | 
					            // being displayed in search highlight.
 | 
				
			||||||
            const stream_name = stream_data.maybe_get_stream_name(stream_id);
 | 
					            const stream_name = sub_store.maybe_get_stream_name(stream_id);
 | 
				
			||||||
            if (stream_name !== undefined) {
 | 
					            if (stream_name !== undefined) {
 | 
				
			||||||
                // If the stream has been deleted,
 | 
					                // If the stream has been deleted,
 | 
				
			||||||
                // stream_data.maybe_get_stream_name might return
 | 
					                // sub_store.maybe_get_stream_name might return
 | 
				
			||||||
                // undefined.  Otherwise, display the current stream name.
 | 
					                // undefined.  Otherwise, display the current stream name.
 | 
				
			||||||
                $(this).text("#" + stream_name);
 | 
					                $(this).text("#" + stream_name);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -145,10 +145,10 @@ export const update_elements = ($content) => {
 | 
				
			|||||||
        if (stream_id && !$(this).find(".highlight").length) {
 | 
					        if (stream_id && !$(this).find(".highlight").length) {
 | 
				
			||||||
            // Display the current name for stream if it is not
 | 
					            // Display the current name for stream if it is not
 | 
				
			||||||
            // being displayed in search highlight.
 | 
					            // being displayed in search highlight.
 | 
				
			||||||
            const stream_name = stream_data.maybe_get_stream_name(stream_id);
 | 
					            const stream_name = sub_store.maybe_get_stream_name(stream_id);
 | 
				
			||||||
            if (stream_name !== undefined) {
 | 
					            if (stream_name !== undefined) {
 | 
				
			||||||
                // If the stream has been deleted,
 | 
					                // If the stream has been deleted,
 | 
				
			||||||
                // stream_data.maybe_get_stream_name might return
 | 
					                // sub_store.maybe_get_stream_name might return
 | 
				
			||||||
                // undefined.  Otherwise, display the current stream name.
 | 
					                // undefined.  Otherwise, display the current stream name.
 | 
				
			||||||
                const text = $(this).text();
 | 
					                const text = $(this).text();
 | 
				
			||||||
                $(this).text("#" + stream_name + text.slice(text.indexOf(" > ")));
 | 
					                $(this).text("#" + stream_name + text.slice(text.indexOf(" > ")));
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,7 +14,7 @@ import {$t} from "./i18n";
 | 
				
			|||||||
import * as narrow from "./narrow";
 | 
					import * as narrow from "./narrow";
 | 
				
			||||||
import * as people from "./people";
 | 
					import * as people from "./people";
 | 
				
			||||||
import * as popover_menus from "./popover_menus";
 | 
					import * as popover_menus from "./popover_menus";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
import * as timerender from "./timerender";
 | 
					import * as timerender from "./timerender";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const MINIMUM_SCHEDULED_MESSAGE_DELAY_SECONDS = 5 * 60;
 | 
					export const MINIMUM_SCHEDULED_MESSAGE_DELAY_SECONDS = 5 * 60;
 | 
				
			||||||
@@ -122,7 +122,7 @@ export function open_scheduled_message_in_compose(scheduled_msg, should_narrow_t
 | 
				
			|||||||
    if (scheduled_msg.type === "stream") {
 | 
					    if (scheduled_msg.type === "stream") {
 | 
				
			||||||
        compose_args = {
 | 
					        compose_args = {
 | 
				
			||||||
            type: "stream",
 | 
					            type: "stream",
 | 
				
			||||||
            stream: stream_data.maybe_get_stream_name(scheduled_msg.to),
 | 
					            stream: sub_store.maybe_get_stream_name(scheduled_msg.to),
 | 
				
			||||||
            topic: scheduled_msg.topic,
 | 
					            topic: scheduled_msg.topic,
 | 
				
			||||||
            content: scheduled_msg.content,
 | 
					            content: scheduled_msg.content,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,7 @@ import * as people from "./people";
 | 
				
			|||||||
import * as scheduled_messages from "./scheduled_messages";
 | 
					import * as scheduled_messages from "./scheduled_messages";
 | 
				
			||||||
import * as stream_color from "./stream_color";
 | 
					import * as stream_color from "./stream_color";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as stream_data from "./stream_data";
 | 
				
			||||||
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
import * as timerender from "./timerender";
 | 
					import * as timerender from "./timerender";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const keyboard_handling_context = {
 | 
					export const keyboard_handling_context = {
 | 
				
			||||||
@@ -57,7 +58,7 @@ function format(scheduled_messages) {
 | 
				
			|||||||
        if (msg.type === "stream") {
 | 
					        if (msg.type === "stream") {
 | 
				
			||||||
            msg_render_context.is_stream = true;
 | 
					            msg_render_context.is_stream = true;
 | 
				
			||||||
            msg_render_context.stream_id = msg.to;
 | 
					            msg_render_context.stream_id = msg.to;
 | 
				
			||||||
            msg_render_context.stream_name = stream_data.maybe_get_stream_name(
 | 
					            msg_render_context.stream_name = sub_store.maybe_get_stream_name(
 | 
				
			||||||
                msg_render_context.stream_id,
 | 
					                msg_render_context.stream_id,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            const color = stream_data.get_color(msg_render_context.stream_name);
 | 
					            const color = stream_data.get_color(msg_render_context.stream_name);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@ import render_confirm_unstar_all_messages_in_topic from "../templates/confirm_di
 | 
				
			|||||||
import * as confirm_dialog from "./confirm_dialog";
 | 
					import * as confirm_dialog from "./confirm_dialog";
 | 
				
			||||||
import {$t_html} from "./i18n";
 | 
					import {$t_html} from "./i18n";
 | 
				
			||||||
import * as message_flags from "./message_flags";
 | 
					import * as message_flags from "./message_flags";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function confirm_unstar_all_messages() {
 | 
					export function confirm_unstar_all_messages() {
 | 
				
			||||||
    const html_body = render_confirm_unstar_all_messages();
 | 
					    const html_body = render_confirm_unstar_all_messages();
 | 
				
			||||||
@@ -21,7 +21,7 @@ export function confirm_unstar_all_messages_in_topic(stream_id, topic) {
 | 
				
			|||||||
        message_flags.unstar_all_messages_in_topic(stream_id, topic);
 | 
					        message_flags.unstar_all_messages_in_topic(stream_id, topic);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const stream_name = stream_data.maybe_get_stream_name(stream_id);
 | 
					    const stream_name = sub_store.maybe_get_stream_name(stream_id);
 | 
				
			||||||
    if (stream_name === undefined) {
 | 
					    if (stream_name === undefined) {
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,13 +11,14 @@ import * as row from "./rows";
 | 
				
			|||||||
import * as settings_data from "./settings_data";
 | 
					import * as settings_data from "./settings_data";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as stream_data from "./stream_data";
 | 
				
			||||||
import * as stream_settings_ui from "./stream_settings_ui";
 | 
					import * as stream_settings_ui from "./stream_settings_ui";
 | 
				
			||||||
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extend([lchPlugin, mixPlugin]);
 | 
					extend([lchPlugin, mixPlugin]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function update_stream_recipient_color($stream_header) {
 | 
					export function update_stream_recipient_color($stream_header) {
 | 
				
			||||||
    if ($stream_header.length) {
 | 
					    if ($stream_header.length) {
 | 
				
			||||||
        const stream_id = Number.parseInt($($stream_header).attr("data-stream-id"), 10);
 | 
					        const stream_id = Number.parseInt($($stream_header).attr("data-stream-id"), 10);
 | 
				
			||||||
        const stream_name = stream_data.maybe_get_stream_name(stream_id);
 | 
					        const stream_name = sub_store.maybe_get_stream_name(stream_id);
 | 
				
			||||||
        if (!stream_name) {
 | 
					        if (!stream_name) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -675,19 +675,6 @@ export function get_name(stream_name) {
 | 
				
			|||||||
    return sub.name;
 | 
					    return sub.name;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function maybe_get_stream_name(stream_id) {
 | 
					 | 
				
			||||||
    if (!stream_id) {
 | 
					 | 
				
			||||||
        return undefined;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    const stream = sub_store.get(stream_id);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (!stream) {
 | 
					 | 
				
			||||||
        return undefined;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return stream.name;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export function is_user_subscribed(stream_id, user_id) {
 | 
					export function is_user_subscribed(stream_id, user_id) {
 | 
				
			||||||
    const sub = sub_store.get(stream_id);
 | 
					    const sub = sub_store.get(stream_id);
 | 
				
			||||||
    if (sub === undefined || !can_view_subscribers(sub)) {
 | 
					    if (sub === undefined || !can_view_subscribers(sub)) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ let filter_out_inactives = false;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export function get_streams() {
 | 
					export function get_streams() {
 | 
				
			||||||
    const sorted_streams = all_streams.map((stream_id) =>
 | 
					    const sorted_streams = all_streams.map((stream_id) =>
 | 
				
			||||||
        stream_data.maybe_get_stream_name(stream_id),
 | 
					        sub_store.maybe_get_stream_name(stream_id),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
    return sorted_streams;
 | 
					    return sorted_streams;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,6 @@ import * as resize from "./resize";
 | 
				
			|||||||
import * as settings_data from "./settings_data";
 | 
					import * as settings_data from "./settings_data";
 | 
				
			||||||
import * as stream_bar from "./stream_bar";
 | 
					import * as stream_bar from "./stream_bar";
 | 
				
			||||||
import * as stream_color from "./stream_color";
 | 
					import * as stream_color from "./stream_color";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					 | 
				
			||||||
import * as stream_settings_ui from "./stream_settings_ui";
 | 
					import * as stream_settings_ui from "./stream_settings_ui";
 | 
				
			||||||
import * as sub_store from "./sub_store";
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
import * as ui_report from "./ui_report";
 | 
					import * as ui_report from "./ui_report";
 | 
				
			||||||
@@ -172,7 +171,7 @@ export function build_move_topic_to_stream_popover(
 | 
				
			|||||||
    only_topic_edit,
 | 
					    only_topic_edit,
 | 
				
			||||||
    message,
 | 
					    message,
 | 
				
			||||||
) {
 | 
					) {
 | 
				
			||||||
    const current_stream_name = stream_data.maybe_get_stream_name(current_stream_id);
 | 
					    const current_stream_name = sub_store.maybe_get_stream_name(current_stream_id);
 | 
				
			||||||
    const args = {
 | 
					    const args = {
 | 
				
			||||||
        topic_name,
 | 
					        topic_name,
 | 
				
			||||||
        current_stream_id,
 | 
					        current_stream_id,
 | 
				
			||||||
@@ -424,7 +423,7 @@ export function register_click_handlers() {
 | 
				
			|||||||
        if (e.type === "keypress" && !keydown_util.is_enter_event(e)) {
 | 
					        if (e.type === "keypress" && !keydown_util.is_enter_event(e)) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const stream_name = stream_data.maybe_get_stream_name(
 | 
					        const stream_name = sub_store.maybe_get_stream_name(
 | 
				
			||||||
            Number.parseInt(stream_widget.value(), 10),
 | 
					            Number.parseInt(stream_widget.value(), 10),
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -78,3 +78,16 @@ export function add_hydrated_sub(stream_id: number, sub: StreamSubscription): vo
 | 
				
			|||||||
    // in stream_data.js. Grep there to find callers.
 | 
					    // in stream_data.js. Grep there to find callers.
 | 
				
			||||||
    subs_by_stream_id.set(stream_id, sub);
 | 
					    subs_by_stream_id.set(stream_id, sub);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function maybe_get_stream_name(stream_id: number): string | undefined {
 | 
				
			||||||
 | 
					    if (!stream_id) {
 | 
				
			||||||
 | 
					        return undefined;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const stream = get(stream_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!stream) {
 | 
				
			||||||
 | 
					        return undefined;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return stream.name;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,7 @@ import * as feedback_widget from "./feedback_widget";
 | 
				
			|||||||
import {FoldDict} from "./fold_dict";
 | 
					import {FoldDict} from "./fold_dict";
 | 
				
			||||||
import {$t} from "./i18n";
 | 
					import {$t} from "./i18n";
 | 
				
			||||||
import {page_params} from "./page_params";
 | 
					import {page_params} from "./page_params";
 | 
				
			||||||
import * as stream_data from "./stream_data";
 | 
					import * as sub_store from "./sub_store";
 | 
				
			||||||
import * as timerender from "./timerender";
 | 
					import * as timerender from "./timerender";
 | 
				
			||||||
import {get_time_from_date_muted} from "./util";
 | 
					import {get_time_from_date_muted} from "./util";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -57,7 +57,7 @@ export function is_topic_muted(stream_id, topic) {
 | 
				
			|||||||
export function get_user_topics_for_visibility_policy(visibility_policy) {
 | 
					export function get_user_topics_for_visibility_policy(visibility_policy) {
 | 
				
			||||||
    const topics = [];
 | 
					    const topics = [];
 | 
				
			||||||
    for (const [stream_id, sub_dict] of all_user_topics) {
 | 
					    for (const [stream_id, sub_dict] of all_user_topics) {
 | 
				
			||||||
        const stream = stream_data.maybe_get_stream_name(stream_id);
 | 
					        const stream = sub_store.maybe_get_stream_name(stream_id);
 | 
				
			||||||
        for (const topic of sub_dict.keys()) {
 | 
					        for (const topic of sub_dict.keys()) {
 | 
				
			||||||
            if (sub_dict.get(topic).visibility_policy === visibility_policy) {
 | 
					            if (sub_dict.get(topic).visibility_policy === visibility_policy) {
 | 
				
			||||||
                const date_updated = sub_dict.get(topic).date_updated;
 | 
					                const date_updated = sub_dict.get(topic).date_updated;
 | 
				
			||||||
@@ -113,7 +113,7 @@ export function set_user_topic_visibility_policy(
 | 
				
			|||||||
            // know what you did if you triggered muting with the
 | 
					            // know what you did if you triggered muting with the
 | 
				
			||||||
            // mouse.
 | 
					            // mouse.
 | 
				
			||||||
            if (visibility_policy === all_visibility_policies.MUTED) {
 | 
					            if (visibility_policy === all_visibility_policies.MUTED) {
 | 
				
			||||||
                const stream_name = stream_data.maybe_get_stream_name(stream_id);
 | 
					                const stream_name = sub_store.maybe_get_stream_name(stream_id);
 | 
				
			||||||
                feedback_widget.show({
 | 
					                feedback_widget.show({
 | 
				
			||||||
                    populate($container) {
 | 
					                    populate($container) {
 | 
				
			||||||
                        const rendered_html = render_topic_muted();
 | 
					                        const rendered_html = render_topic_muted();
 | 
				
			||||||
@@ -141,7 +141,7 @@ export function set_user_topic(user_topic) {
 | 
				
			|||||||
    const topic = user_topic.topic_name;
 | 
					    const topic = user_topic.topic_name;
 | 
				
			||||||
    const date_updated = user_topic.last_updated;
 | 
					    const date_updated = user_topic.last_updated;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const stream_name = stream_data.maybe_get_stream_name(stream_id);
 | 
					    const stream_name = sub_store.maybe_get_stream_name(stream_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!stream_name) {
 | 
					    if (!stream_name) {
 | 
				
			||||||
        blueslip.warn("Unknown stream ID in set_user_topic: " + stream_id);
 | 
					        blueslip.warn("Unknown stream ID in set_user_topic: " + stream_id);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -145,9 +145,9 @@ test("basics", () => {
 | 
				
			|||||||
    assert.ok(!stream_data.is_muted(social.stream_id));
 | 
					    assert.ok(!stream_data.is_muted(social.stream_id));
 | 
				
			||||||
    assert.ok(stream_data.is_muted(denmark.stream_id));
 | 
					    assert.ok(stream_data.is_muted(denmark.stream_id));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    assert.equal(stream_data.maybe_get_stream_name(), undefined);
 | 
					    assert.equal(sub_store.maybe_get_stream_name(), undefined);
 | 
				
			||||||
    assert.equal(stream_data.maybe_get_stream_name(social.stream_id), "social");
 | 
					    assert.equal(sub_store.maybe_get_stream_name(social.stream_id), "social");
 | 
				
			||||||
    assert.equal(stream_data.maybe_get_stream_name(42), undefined);
 | 
					    assert.equal(sub_store.maybe_get_stream_name(42), undefined);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    stream_data.set_realm_default_streams([denmark]);
 | 
					    stream_data.set_realm_default_streams([denmark]);
 | 
				
			||||||
    assert.ok(stream_data.is_default_stream_id(denmark.stream_id));
 | 
					    assert.ok(stream_data.is_default_stream_id(denmark.stream_id));
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user