narrow: Rename to `message_view`.

This brings it in sync with other libraries like `message_list`
and `message_list_data`.
This commit is contained in:
Aman Agrawal 2024-06-05 08:51:22 +00:00 committed by Tim Abbott
parent 48cdfd25f7
commit f58c586bee
21 changed files with 104 additions and 102 deletions

View File

@ -149,12 +149,12 @@ EXEMPT_FILES = make_set(
"web/src/message_scroll.js",
"web/src/message_scroll_state.ts",
"web/src/message_util.ts",
"web/src/message_view.js",
"web/src/message_view_header.ts",
"web/src/message_viewport.ts",
"web/src/messages_overlay_ui.ts",
"web/src/modals.ts",
"web/src/muted_users_ui.ts",
"web/src/narrow.js",
"web/src/narrow_history.ts",
"web/src/narrow_title.ts",
"web/src/navbar_alerts.ts",

View File

@ -20,7 +20,7 @@ import * as hashchange from "./hashchange";
import * as message_edit from "./message_edit";
import * as message_lists from "./message_lists";
import * as message_store from "./message_store";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import * as narrow_state from "./narrow_state";
import * as navigate from "./navigate";
import {page_params} from "./page_params";
@ -474,7 +474,7 @@ export function initialize() {
}
e.preventDefault();
const row_id = get_row_id_for_narrowing(this);
narrow.narrow_by_recipient(row_id, {trigger: "message header"});
message_view.narrow_by_recipient(row_id, {trigger: "message header"});
});
$("#message_feed_container").on("click", ".narrows_by_topic", function (e) {
@ -483,7 +483,7 @@ export function initialize() {
}
e.preventDefault();
const row_id = get_row_id_for_narrowing(this);
narrow.narrow_by_topic(row_id, {trigger: "message header"});
message_view.narrow_by_topic(row_id, {trigger: "message header"});
});
// SIDEBARS

View File

@ -17,7 +17,7 @@ import * as dialog_widget from "./dialog_widget";
import * as flatpickr from "./flatpickr";
import {$t_html} from "./i18n";
import * as message_edit from "./message_edit";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import * as onboarding_steps from "./onboarding_steps";
import {page_params} from "./page_params";
import * as poll_modal from "./poll_modal";
@ -283,7 +283,7 @@ export function initialize() {
`.${CSS.escape(compose_banner.CLASSNAMES.search_view)} .main-view-banner-action-button`,
(event) => {
event.preventDefault();
narrow.to_compose_target();
message_view.to_compose_target();
},
);
@ -440,7 +440,7 @@ export function initialize() {
$("#compose").on("click", ".narrow_to_compose_recipients", (e) => {
e.preventDefault();
narrow.to_compose_target();
message_view.to_compose_target();
});
$("#compose").on("click", ".collapse_composebox_button", (e) => {

View File

@ -5,7 +5,7 @@ import * as channel from "./channel";
import * as feedback_widget from "./feedback_widget";
import {$t} from "./i18n";
import * as message_store from "./message_store";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import * as stream_data from "./stream_data";
export function initialize() {
@ -27,7 +27,7 @@ export function initialize() {
// The code below is for sending a message received from notification reply which
// is often referred to as inline reply feature. This is done so desktop app doesn't
// have to depend on channel.post for setting crsf_token and narrow.narrow_by_topic
// have to depend on channel.post for setting crsf_token and message_view.narrow_by_topic
// to narrow to the message being sent.
if (window.electron_bridge.set_send_notification_reply_message_supported !== undefined) {
window.electron_bridge.set_send_notification_reply_message_supported(true);
@ -47,9 +47,11 @@ export function initialize() {
function success() {
if (message.type === "stream") {
narrow.narrow_by_topic(message_id, {trigger: "desktop_notification_reply"});
message_view.narrow_by_topic(message_id, {trigger: "desktop_notification_reply"});
} else {
narrow.narrow_by_recipient(message_id, {trigger: "desktop_notification_reply"});
message_view.narrow_by_recipient(message_id, {
trigger: "desktop_notification_reply",
});
}
}

View File

@ -7,8 +7,8 @@ import * as browser_history from "./browser_history";
import * as compose_actions from "./compose_actions";
import * as drafts from "./drafts";
import {$t} from "./i18n";
import * as message_view from "./message_view";
import * as messages_overlay_ui from "./messages_overlay_ui";
import * as narrow from "./narrow";
import * as overlays from "./overlays";
import * as people from "./people";
import * as rendered_markdown from "./rendered_markdown";
@ -24,7 +24,7 @@ function restore_draft(draft_id) {
if (compose_args.type === "stream") {
if (draft.stream_id !== undefined && draft.topic !== "") {
narrow.show(
message_view.show(
[
{
operator: "channel",
@ -37,7 +37,7 @@ function restore_draft(draft_id) {
}
} else {
if (compose_args.private_message_recipient !== "") {
narrow.show([{operator: "dm", operand: compose_args.private_message_recipient}], {
message_view.show([{operator: "dm", operand: compose_args.private_message_recipient}], {
trigger: "restore draft",
});
}

View File

@ -12,9 +12,9 @@ import * as inbox_ui from "./inbox_ui";
import * as inbox_util from "./inbox_util";
import * as info_overlay from "./info_overlay";
import * as message_fetch from "./message_fetch";
import * as message_view from "./message_view";
import * as message_viewport from "./message_viewport";
import * as modals from "./modals";
import * as narrow from "./narrow";
import * as overlays from "./overlays";
import {page_params} from "./page_params";
import * as people from "./people";
@ -57,7 +57,7 @@ function show_all_message_view() {
// Don't export this function outside of this module since
// `change_hash` is false here which means it is should only
// be called after hash is updated in the URL.
narrow.show([{operator: "in", operand: "home"}], {
message_view.show([{operator: "in", operand: "home"}], {
trigger: "hashchange",
change_hash: false,
then_select_id: history.state?.narrow_pointer,
@ -198,7 +198,7 @@ function do_hashchange_normal(from_reload) {
narrow_opts.then_select_offset = data_for_hash.narrow_offset;
narrow_opts.show_more_topics = data_for_hash.show_more_topics ?? false;
}
narrow.show(terms, narrow_opts);
message_view.show(terms, narrow_opts);
return true;
}
case "":

View File

@ -32,8 +32,8 @@ import * as message_edit from "./message_edit";
import * as message_edit_history from "./message_edit_history";
import * as message_lists from "./message_lists";
import * as message_scroll_state from "./message_scroll_state";
import * as message_view from "./message_view";
import * as modals from "./modals";
import * as narrow from "./narrow";
import * as narrow_state from "./narrow_state";
import * as navbar_menus from "./navbar_menus";
import * as navigate from "./navigate";
@ -832,7 +832,7 @@ export function process_hotkey(e, hotkey) {
}
if (event_name === "narrow_to_compose_target") {
narrow.to_compose_target();
message_view.to_compose_target();
return true;
}
@ -925,7 +925,7 @@ export function process_hotkey(e, hotkey) {
// Shortcuts that don't require a message
switch (event_name) {
case "narrow_private":
narrow.show(
message_view.show(
[
{
operator: "is",
@ -952,19 +952,19 @@ export function process_hotkey(e, hotkey) {
browser_history.go_to_location("keyboard-shortcuts");
return true;
case "stream_cycle_backward":
narrow.stream_cycle_backward();
message_view.stream_cycle_backward();
return true;
case "stream_cycle_forward":
narrow.stream_cycle_forward();
message_view.stream_cycle_forward();
return true;
case "n_key":
narrow.narrow_to_next_topic({trigger: "hotkey", only_followed_topics: false});
message_view.narrow_to_next_topic({trigger: "hotkey", only_followed_topics: false});
return true;
case "narrow_to_next_unread_followed_topic":
narrow.narrow_to_next_topic({trigger: "hotkey", only_followed_topics: true});
message_view.narrow_to_next_topic({trigger: "hotkey", only_followed_topics: true});
return true;
case "p_key":
narrow.narrow_to_next_pm_string({trigger: "hotkey"});
message_view.narrow_to_next_pm_string({trigger: "hotkey"});
return true;
case "open_recent_view":
browser_history.go_to_location("#recent");
@ -1091,13 +1091,13 @@ export function process_hotkey(e, hotkey) {
case "toggle_conversation_view":
if (narrow_state.narrowed_by_topic_reply()) {
// narrow to stream if user is in topic view
return do_narrow_action(narrow.narrow_by_recipient);
return do_narrow_action(message_view.narrow_by_recipient);
} else if (narrow_state.narrowed_by_pm_reply()) {
// do nothing if user is in DM view
return false;
}
// else narrow to conversation view (topic / DM)
return do_narrow_action(narrow.narrow_by_topic);
return do_narrow_action(message_view.narrow_by_topic);
case "toggle_stream_subscription":
deprecated_feature_notice.maybe_show_deprecation_notice("Shift + S");
return true;
@ -1194,10 +1194,10 @@ export function process_hotkey(e, hotkey) {
case "zoom_to_message_near": {
// The following code is essentially equivalent to
// `window.location = hashutil.by_conversation_and_time_url(msg)`
// but we use `narrow.show` to pass in the `trigger` parameter
// but we use `message_view.show` to pass in the `trigger` parameter
switch (msg.type) {
case "private":
narrow.show(
message_view.show(
[
{operator: "dm", operand: msg.reply_to},
{operator: "near", operand: msg.id},
@ -1206,7 +1206,7 @@ export function process_hotkey(e, hotkey) {
);
return true;
case "stream":
narrow.show(
message_view.show(
[
{
operator: "channel",

View File

@ -18,7 +18,7 @@ import * as message_lists from "./message_lists";
import * as message_notifications from "./message_notifications";
import * as message_store from "./message_store";
import * as message_util from "./message_util";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import * as narrow_state from "./narrow_state";
import * as pm_list from "./pm_list";
import * as recent_senders from "./recent_senders";
@ -152,7 +152,7 @@ export function insert_new_messages(messages, sent_by_this_client) {
if (sent_by_this_client) {
compose_notifications.notify_local_mixes(messages, need_user_to_scroll, {
narrow_to_recipient(message_id) {
narrow.narrow_by_topic(message_id, {trigger: "outside_current_view"});
message_view.narrow_by_topic(message_id, {trigger: "outside_current_view"});
},
});
}
@ -429,7 +429,7 @@ export function update_messages(events) {
trigger: "stream/topic change",
then_select_id: current_selected_id,
};
narrow.show(terms, opts);
message_view.show(terms, opts);
}
}

View File

@ -5,7 +5,7 @@ import * as blueslip from "./blueslip";
import * as desktop_notifications from "./desktop_notifications";
import {$t} from "./i18n";
import * as message_parser from "./message_parser";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import * as people from "./people";
import * as spoilers from "./spoilers";
import * as stream_data from "./stream_data";
@ -162,7 +162,7 @@ export function process_notification(notification) {
notification_object.addEventListener("click", () => {
notification_object.close();
if (message.type !== "test-notification") {
narrow.narrow_by_topic(message.id, {trigger: "notification"});
message_view.narrow_by_topic(message.id, {trigger: "notification"});
}
window.focus();
});

View File

@ -171,7 +171,7 @@ function create_and_update_message_list(filter, id_info, opts) {
//
// It's fine for the hash change to happen anytime before updating
// the current message list as we are trying to emulate the `hashchange`
// workflow we have which calls `narrow.show` after hash is updated.
// workflow we have which calls `message_view.show` after hash is updated.
if (opts.change_hash) {
update_hash_to_match_filter(filter, opts.trigger);
opts.show_more_topics = history.state?.show_more_topics ?? false;
@ -276,7 +276,7 @@ export function show(raw_terms, opts) {
return;
}
// Since narrow.show is called directly from various
// Since message_view.show is called directly from various
// places in our code without passing through hashchange,
// we need to check if the narrow is allowed for spectator here too.
if (
@ -456,7 +456,7 @@ export function show(raw_terms, opts) {
success(data) {
// After the message is fetched, we make the
// message locally available and then call
// narrow.show recursively, setting a flag to
// message_view.show recursively, setting a flag to
// indicate we've already done this.
message_helper.process_new_message(data.message);
show(raw_terms, {
@ -470,7 +470,7 @@ export function show(raw_terms, opts) {
// happen, for example, if a user types
// `stream:foo topic:bar near:1` into the search
// box. No special rewriting is required, so call
// narrow.show recursively.
// message_view.show recursively.
show(raw_terms, {
fetched_target_message: true,
...opts,
@ -478,7 +478,7 @@ export function show(raw_terms, opts) {
},
});
// The channel.get will call narrow.show recursively
// The channel.get will call message_view.show recursively
// from a continuation unconditionally; the correct thing
// to do here is return.
return;
@ -487,7 +487,7 @@ export function show(raw_terms, opts) {
// IMPORTANT: No code that modifies UI state should appear above
// this point. This is important to prevent calling such functions
// more than once in the event that we call narrow.show
// more than once in the event that we call message_view.show.
// recursively.
reset_ui_state(opts);

View File

@ -4,7 +4,7 @@ import * as tippy from "tippy.js";
import render_navbar_personal_menu_popover from "../templates/popovers/navbar/navbar_personal_menu_popover.hbs";
import * as channel from "./channel";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import * as people from "./people";
import * as popover_menus from "./popover_menus";
import * as popover_menus_data from "./popover_menus_data";
@ -79,7 +79,7 @@ export function initialize() {
$popper.one("click", ".narrow-self-direct-message", (e) => {
const user_id = current_user.user_id;
const email = people.get_by_user_id(user_id).email;
narrow.show(
message_view.show(
[
{
operator: "dm",
@ -95,7 +95,7 @@ export function initialize() {
$popper.one("click", ".narrow-messages-sent", (e) => {
const user_id = current_user.user_id;
const email = people.get_by_user_id(user_id).email;
narrow.show(
message_view.show(
[
{
operator: "sender",

View File

@ -4,7 +4,7 @@ import * as compose from "./compose";
import * as compose_actions from "./compose_actions";
import {localstorage} from "./localstorage";
import * as message_fetch from "./message_fetch";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
// Check if we're doing a compose-preserving reload. This must be
// done before the first call to get_events
@ -28,7 +28,7 @@ export function initialize() {
// exist, but be log it so that it's available for future
// debugging if an exception happens later.
blueslip.info("Invalid hash change reload token");
narrow.changehash("", trigger);
message_view.changehash("", trigger);
return;
}
ls.remove(hash_fragment);
@ -83,5 +83,5 @@ export function initialize() {
});
activity.set_new_user_input(false);
narrow.changehash(vars.oldhash, trigger);
message_view.changehash(vars.oldhash, trigger);
}

View File

@ -5,7 +5,7 @@ import render_compose_banner from "../templates/compose_banner/compose_banner.hb
import * as compose_actions from "./compose_actions";
import * as compose_banner from "./compose_banner";
import {$t} from "./i18n";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import * as people from "./people";
import * as scheduled_messages from "./scheduled_messages";
import * as stream_data from "./stream_data";
@ -19,7 +19,7 @@ export function hide_scheduled_message_success_compose_banner(scheduled_message_
function narrow_via_edit_scheduled_message(compose_args) {
if (compose_args.message_type === "stream") {
narrow.show(
message_view.show(
[
{
operator: "channel",
@ -30,7 +30,7 @@ function narrow_via_edit_scheduled_message(compose_args) {
{trigger: "edit scheduled message"},
);
} else {
narrow.show([{operator: "dm", operand: compose_args.private_message_recipient}], {
message_view.show([{operator: "dm", operand: compose_args.private_message_recipient}], {
trigger: "edit scheduled message",
});
}

View File

@ -1,5 +1,5 @@
import * as channel from "./channel";
import * as narrow from "./narrow";
import * as message_view from "./message_view";
import {page_params} from "./page_params";
function set_tutorial_status(status, callback) {
@ -13,7 +13,7 @@ function set_tutorial_status(status, callback) {
export function initialize() {
if (page_params.needs_tutorial) {
set_tutorial_status("started");
narrow.show(
message_view.show(
[
{
operator: "is",

View File

@ -67,11 +67,11 @@ import * as message_list_hover from "./message_list_hover";
import * as message_list_tooltips from "./message_list_tooltips";
import * as message_lists from "./message_lists";
import * as message_scroll from "./message_scroll";
import * as message_view from "./message_view";
import * as message_view_header from "./message_view_header";
import * as message_viewport from "./message_viewport";
import * as modals from "./modals";
import * as muted_users from "./muted_users";
import * as narrow from "./narrow";
import * as narrow_history from "./narrow_history";
import * as narrow_state from "./narrow_state";
import * as narrow_title from "./narrow_title";
@ -774,7 +774,7 @@ export function initialize_everything(state_data) {
const sub = sub_store.get(stream_id);
sidebar_ui.hide_all();
popovers.hide_all();
narrow.show(
message_view.show(
[
{
operator: "stream",
@ -832,14 +832,14 @@ export function initialize_everything(state_data) {
compose_textarea.initialize();
upload.initialize();
search.initialize({
on_narrow_search: narrow.show,
on_narrow_search: message_view.show,
});
desktop_notifications.initialize();
audible_notifications.initialize();
compose_notifications.initialize({
on_click_scroll_to_selected: message_viewport.scroll_to_selected,
on_narrow_to_recipient(message_id) {
narrow.narrow_by_topic(message_id, {trigger: "compose_notification"});
message_view.narrow_by_topic(message_id, {trigger: "compose_notification"});
},
});
unread_ops.initialize();
@ -859,7 +859,7 @@ export function initialize_everything(state_data) {
activity.initialize();
activity_ui.initialize({
narrow_by_email(email) {
narrow.show(
message_view.show(
[
{
operator: "dm",
@ -886,7 +886,7 @@ export function initialize_everything(state_data) {
topic_list.initialize({
on_topic_click(stream_id, topic) {
const sub = sub_store.get(stream_id);
narrow.show(
message_view.show(
[
{operator: "channel", operand: sub.name},
{operator: "topic", operand: topic},

View File

@ -24,8 +24,8 @@ import * as dialog_widget from "./dialog_widget";
import * as hash_util from "./hash_util";
import {$t, $t_html} from "./i18n";
import * as message_lists from "./message_lists";
import * as message_view from "./message_view";
import * as muted_users from "./muted_users";
import * as narrow from "./narrow";
import * as overlays from "./overlays";
import {page_params} from "./page_params";
import * as people from "./people";
@ -688,7 +688,7 @@ function register_click_handlers() {
$("body").on("click", ".user-card-popover-actions .narrow_to_private_messages", (e) => {
const user_id = elem_to_user_id($(e.target).parents("ul"));
const email = people.get_by_user_id(user_id).email;
narrow.show(
message_view.show(
[
{
operator: "dm",
@ -708,7 +708,7 @@ function register_click_handlers() {
$("body").on("click", ".user-card-popover-actions .narrow_to_messages_sent", (e) => {
const user_id = elem_to_user_id($(e.target).parents("ul"));
const email = people.get_by_user_id(user_id).email;
narrow.show(
message_view.show(
[
{
operator: "sender",

View File

@ -31,7 +31,7 @@ const browser_history = zrequire("browser_history");
const people = zrequire("people");
const hash_util = zrequire("hash_util");
const hashchange = zrequire("hashchange");
const narrow = zrequire("../src/narrow");
const message_view = zrequire("../src/message_view");
const stream_data = zrequire("stream_data");
const {Filter} = zrequire("../src/filter");
@ -181,9 +181,9 @@ function test_helper({override, override_rewire, change_tab}) {
stub(ui_report, "error");
if (change_tab) {
override_rewire(narrow, "show", (terms) => {
override_rewire(message_view, "show", (terms) => {
narrow_terms = terms;
events.push("narrow.show");
events.push("message_view.show");
});
override(info_overlay, "show", (name) => {
@ -237,7 +237,7 @@ run_test("hash_interactions", ({override, override_rewire}) => {
helper.assert_events([
[overlays, "close_for_hash_change"],
[message_viewport, "stop_auto_scrolling"],
"narrow.show",
"message_view.show",
]);
helper.clear_events();
@ -245,7 +245,7 @@ run_test("hash_interactions", ({override, override_rewire}) => {
helper.assert_events([
[overlays, "close_for_hash_change"],
[message_viewport, "stop_auto_scrolling"],
"narrow.show",
"message_view.show",
]);
// Test old "#recent_topics" hash redirects to "#recent".
@ -268,7 +268,7 @@ run_test("hash_interactions", ({override, override_rewire}) => {
helper.assert_events([
[overlays, "close_for_hash_change"],
[message_viewport, "stop_auto_scrolling"],
"narrow.show",
"message_view.show",
]);
let terms = helper.get_narrow_terms();
assert.equal(terms[0].operand, "Denmark");
@ -280,7 +280,7 @@ run_test("hash_interactions", ({override, override_rewire}) => {
helper.assert_events([
[overlays, "close_for_hash_change"],
[message_viewport, "stop_auto_scrolling"],
"narrow.show",
"message_view.show",
]);
terms = helper.get_narrow_terms();
assert.equal(terms.length, 0);
@ -375,7 +375,7 @@ run_test("update_hash_to_match_filter", ({override, override_rewire}) => {
let terms = [{operator: "is", operand: "dm"}];
blueslip.expect("error", "browser does not support pushState");
narrow.update_hash_to_match_filter(new Filter(terms));
message_view.update_hash_to_match_filter(new Filter(terms));
helper.assert_events([[message_viewport, "stop_auto_scrolling"]]);
assert.equal(window.location.hash, "#narrow/is/dm");
@ -388,7 +388,7 @@ run_test("update_hash_to_match_filter", ({override, override_rewire}) => {
terms = [{operator: "is", operand: "starred"}];
helper.clear_events();
narrow.update_hash_to_match_filter(new Filter(terms));
message_view.update_hash_to_match_filter(new Filter(terms));
helper.assert_events([[message_viewport, "stop_auto_scrolling"]]);
assert.equal(url_pushed, "http://zulip.zulipdev.com/#narrow/is/starred");
});

View File

@ -50,7 +50,7 @@ const message_actions_popover = mock_esm("../src/message_actions_popover");
const message_edit = mock_esm("../src/message_edit");
const message_lists = mock_esm("../src/message_lists");
const user_topics_ui = mock_esm("../src/user_topics_ui");
const narrow = mock_esm("../src/narrow");
const message_view = mock_esm("../src/message_view");
const narrow_state = mock_esm("../src/narrow_state");
const navigate = mock_esm("../src/navigate");
const modals = mock_esm("../src/modals", {
@ -313,12 +313,12 @@ run_test("basic mappings", () => {
assert_mapping("w", activity_ui, "initiate_search");
assert_mapping("q", stream_list, "initiate_search");
assert_mapping("A", narrow, "stream_cycle_backward");
assert_mapping("D", narrow, "stream_cycle_forward");
assert_mapping("A", message_view, "stream_cycle_backward");
assert_mapping("D", message_view, "stream_cycle_forward");
assert_mapping("c", compose_actions, "start");
assert_mapping("x", compose_actions, "start");
assert_mapping("P", narrow, "show");
assert_mapping("P", message_view, "show");
assert_mapping("g", gear_menu, "toggle");
});
@ -381,7 +381,7 @@ run_test("misc", ({override}) => {
assert_mapping("e", message_edit, "start");
override(narrow_state, "narrowed_by_topic_reply", () => true);
assert_mapping("s", narrow, "narrow_by_recipient");
assert_mapping("s", message_view, "narrow_by_recipient");
override(narrow_state, "narrowed_by_topic_reply", () => false);
override(narrow_state, "narrowed_by_pm_reply", () => true);
@ -435,13 +435,13 @@ run_test("G/M keys", () => {
run_test("n/p keys", () => {
// Test keys that work when a message is selected and
// also when the message list is empty.
assert_mapping("n", narrow, "narrow_to_next_topic");
assert_mapping("p", narrow, "narrow_to_next_pm_string");
assert_mapping("n", narrow, "narrow_to_next_topic");
assert_mapping("n", message_view, "narrow_to_next_topic");
assert_mapping("p", message_view, "narrow_to_next_pm_string");
assert_mapping("n", message_view, "narrow_to_next_topic");
});
run_test("narrow next unread followed topic", () => {
assert_mapping("N", narrow, "narrow_to_next_topic", true, true);
assert_mapping("N", message_view, "narrow_to_next_topic", true, true);
});
run_test("motion_keys", () => {

View File

@ -14,7 +14,7 @@ const narrow_banner = zrequire("narrow_banner");
const people = zrequire("people");
const stream_data = zrequire("stream_data");
const {Filter} = zrequire("../src/filter");
const narrow = zrequire("narrow");
const message_view = zrequire("message_view");
const narrow_title = zrequire("narrow_title");
const settings_config = zrequire("settings_config");
const recent_view_util = zrequire("recent_view_util");
@ -661,21 +661,21 @@ run_test("show_invalid_narrow_message", ({mock_template}) => {
});
run_test("narrow_to_compose_target errors", ({disallow_rewire}) => {
disallow_rewire(narrow, "show");
disallow_rewire(message_view, "show");
// No-op when not composing.
compose_state.set_message_type(undefined);
narrow.to_compose_target();
message_view.to_compose_target();
// No-op when empty stream.
compose_state.set_message_type("stream");
compose_state.set_stream_id("");
narrow.to_compose_target();
message_view.to_compose_target();
});
run_test("narrow_to_compose_target streams", ({override_rewire}) => {
const args = {called: false};
override_rewire(narrow, "show", (terms, opts) => {
override_rewire(message_view, "show", (terms, opts) => {
args.terms = terms;
args.opts = opts;
args.called = true;
@ -688,7 +688,7 @@ run_test("narrow_to_compose_target streams", ({override_rewire}) => {
// Test with existing topic
compose_state.topic("one");
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.equal(args.opts.trigger, "narrow_to_compose_target");
assert.deepEqual(args.terms, [
@ -699,7 +699,7 @@ run_test("narrow_to_compose_target streams", ({override_rewire}) => {
// Test with new topic
compose_state.topic("four");
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [
{operator: "channel", operand: "ROME"},
@ -709,21 +709,21 @@ run_test("narrow_to_compose_target streams", ({override_rewire}) => {
// Test with blank topic
compose_state.topic("");
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [{operator: "channel", operand: "ROME"}]);
// Test with no topic
compose_state.topic(undefined);
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [{operator: "channel", operand: "ROME"}]);
});
run_test("narrow_to_compose_target direct messages", ({override, override_rewire}) => {
const args = {called: false};
override_rewire(narrow, "show", (terms, opts) => {
override_rewire(message_view, "show", (terms, opts) => {
args.terms = terms;
args.opts = opts;
args.called = true;
@ -740,35 +740,35 @@ run_test("narrow_to_compose_target direct messages", ({override, override_rewire
// Test with valid person
emails = "alice@example.com";
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [{operator: "dm", operand: "alice@example.com"}]);
// Test with valid persons
emails = "alice@example.com,ray@example.com";
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [{operator: "dm", operand: "alice@example.com,ray@example.com"}]);
// Test with some invalid persons
emails = "alice@example.com,random,ray@example.com";
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [{operator: "is", operand: "dm"}]);
// Test with all invalid persons
emails = "alice,random,ray";
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [{operator: "is", operand: "dm"}]);
// Test with no persons
emails = "";
args.called = false;
narrow.to_compose_target();
message_view.to_compose_target();
assert.equal(args.called, true);
assert.deepEqual(args.terms, [{operator: "is", operand: "dm"}]);
});

View File

@ -60,7 +60,7 @@ mock_esm("../src/unread_ui", {
});
//
// We have strange hacks in narrow.show to sleep 0
// We have strange hacks in message_view.show to sleep 0
// seconds.
set_global("setTimeout", (f, t) => {
assert.equal(t, 0);
@ -75,7 +75,7 @@ const {buddy_list} = zrequire("buddy_list");
const activity_ui = zrequire("activity_ui");
const narrow_state = zrequire("narrow_state");
const stream_data = zrequire("stream_data");
const narrow = zrequire("narrow");
const message_view = zrequire("message_view");
const people = zrequire("people");
const denmark = {
@ -211,7 +211,7 @@ run_test("basics", ({override}) => {
opts.cont();
};
narrow.show(terms, {
message_view.show(terms, {
then_select_id: selected_id,
});
@ -243,7 +243,7 @@ run_test("basics", ({override}) => {
message_lists.current.selected_id = () => -1;
message_lists.current.get_row = () => row;
narrow.show([{operator: "is", operand: "private"}], {
message_view.show([{operator: "is", operand: "private"}], {
then_select_id: selected_id,
});
@ -254,7 +254,7 @@ run_test("basics", ({override}) => {
row.get_offset_to_window = () => ({top: 100, bottom: 150});
message_lists.current.get_row = () => row;
narrow.show(terms, {
message_view.show(terms, {
then_select_id: selected_id,
});
@ -266,7 +266,7 @@ run_test("basics", ({override}) => {
row.get_offset_to_window = () => ({top: 150, bottom: 250});
message_lists.current.get_row = () => row;
narrow.show(terms, {
message_view.show(terms, {
then_select_id: selected_id,
});

View File

@ -10,7 +10,7 @@ const all_messages_data = mock_esm("../src/all_messages_data");
const {Filter} = zrequire("../src/filter");
const {MessageListData} = zrequire("../src/message_list_data");
const narrow_state = zrequire("narrow_state");
const narrow = zrequire("narrow");
const message_view = zrequire("message_view");
const message_lists = zrequire("message_lists");
const resolved_topic = zrequire("../shared/src/resolved_topic");
@ -65,7 +65,7 @@ function test_with(fixture) {
narrow_state.__Rewire__("get_first_unread_info", () => fixture.unread_info);
narrow.maybe_add_local_messages({
message_view.maybe_add_local_messages({
id_info,
msg_data,
});