right_sidebar_ui: Extract new module.

This UI is not actually a popover, and so there is no need for it to
live in popovers.js.
This commit is contained in:
Tim Abbott
2023-09-24 21:20:32 -07:00
parent 8de397b37f
commit c379d0bad6
8 changed files with 26 additions and 18 deletions

View File

@@ -154,6 +154,7 @@ EXEMPT_FILES = make_set(
"web/src/reload.js",
"web/src/reminder.js",
"web/src/resize.js",
"web/src/right_sidebar_ui.js",
"web/src/rows.js",
"web/src/scheduled_messages.js",
"web/src/scheduled_messages_overlay_ui.js",

View File

@@ -30,6 +30,7 @@ import * as pm_list from "./pm_list";
import * as popovers from "./popovers";
import * as reactions from "./reactions";
import * as recent_view_ui from "./recent_view_ui";
import * as right_sidebar_ui from "./right_sidebar_ui";
import * as rows from "./rows";
import * as server_events from "./server_events";
import * as settings_display from "./settings_display";
@@ -495,7 +496,7 @@ export function initialize() {
const sidebarHidden = !$(".app-main .column-right").hasClass("expanded");
popovers.hide_all();
if (sidebarHidden) {
popovers.show_userlist_sidebar();
right_sidebar_ui.show_userlist_sidebar();
}
});

View File

@@ -6,7 +6,7 @@ import * as emoji_picker from "./emoji_picker";
import * as overlays from "./overlays";
import * as playground_links_popover from "./playground_links_popover";
import * as popover_menus from "./popover_menus";
import * as resize from "./resize";
import * as right_sidebar_ui from "./right_sidebar_ui";
import * as stream_popover from "./stream_popover";
import * as user_card_popover from "./user_card_popover";
import * as user_group_popover from "./user_group_popover";
@@ -110,15 +110,6 @@ export function focus_first_action_popover_item() {
focus_first_popover_item($items);
}
export function hide_userlist_sidebar() {
$(".app-main .column-right").removeClass("expanded");
}
export function show_userlist_sidebar() {
$(".app-main .column-right").addClass("expanded");
resize.resize_page_components();
}
// On mobile web, opening the keyboard can trigger a resize event
// (which in turn can trigger a scroll event). This will have the
// side effect of closing popovers, which we don't want. So we
@@ -198,7 +189,7 @@ export function hide_all_except_sidebars(opts) {
// This function will hide all the popovers, including the mobile web
// or narrow window sidebars.
export function hide_all(not_hide_tippy_instances) {
hide_userlist_sidebar();
right_sidebar_ui.hide_userlist_sidebar();
stream_popover.hide_streamlist_sidebar();
hide_all_except_sidebars({
not_hide_tippy_instances,

View File

@@ -0,0 +1,12 @@
import $ from "jquery";
import * as resize from "./resize";
export function hide_userlist_sidebar() {
$(".app-main .column-right").removeClass("expanded");
}
export function show_userlist_sidebar() {
$(".app-main .column-right").addClass("expanded");
resize.resize_page_components();
}

View File

@@ -24,13 +24,13 @@ import * as overlays from "./overlays";
import {page_params} from "./page_params";
import * as people from "./people";
import * as popover_menus from "./popover_menus";
import * as popovers from "./popovers";
import {
focus_first_popover_item,
hide_all,
hide_all_except_sidebars,
popover_items_handle_keyboard,
} from "./popovers";
import * as right_sidebar_ui from "./right_sidebar_ui";
import * as rows from "./rows";
import * as settings_config from "./settings_config";
import * as settings_users from "./settings_users";
@@ -659,7 +659,7 @@ function register_click_handlers() {
const mention = people.get_mention_syntax(name, user_id);
compose_ui.insert_syntax_and_focus(mention);
user_sidebar.hide();
popovers.hide_userlist_sidebar();
right_sidebar_ui.hide_userlist_sidebar();
e.stopPropagation();
e.preventDefault();
});

View File

@@ -2,6 +2,7 @@ import $ from "jquery";
import * as popovers from "./popovers";
import * as resize from "./resize";
import * as right_sidebar_ui from "./right_sidebar_ui";
import * as stream_popover from "./stream_popover";
export class UserSearch {
@@ -99,7 +100,7 @@ export class UserSearch {
if ($column.hasClass("column-left")) {
stream_popover.show_streamlist_sidebar();
} else if ($column.hasClass("column-right")) {
popovers.show_userlist_sidebar();
right_sidebar_ui.show_userlist_sidebar();
}
}
}

View File

@@ -25,6 +25,7 @@ const padded_widget = mock_esm("../src/padded_widget");
const pm_list = mock_esm("../src/pm_list");
const popovers = mock_esm("../src/popovers");
const resize = mock_esm("../src/resize");
const right_sidebar_ui = mock_esm("../src/right_sidebar_ui");
const scroll_util = mock_esm("../src/scroll_util");
const watchdog = mock_esm("../src/watchdog");
@@ -280,7 +281,7 @@ test("handlers", ({override, mock_template}) => {
override(padded_widget, "update_padding", () => {});
override(popovers, "hide_all", () => {});
override(popovers, "hide_all_except_sidebars", () => {});
override(popovers, "show_userlist_sidebar", () => {});
override(right_sidebar_ui, "show_userlist_sidebar", () => {});
override(resize, "resize_sidebars", () => {});
// This is kind of weak coverage; we are mostly making sure that

View File

@@ -29,6 +29,7 @@ const popovers = mock_esm("../src/popovers");
const presence = mock_esm("../src/presence");
const stream_popover = mock_esm("../src/stream_popover");
const resize = mock_esm("../src/resize");
const right_sidebar_ui = mock_esm("../src/right_sidebar_ui");
set_global("document", _document);
@@ -106,7 +107,7 @@ test("escape_search", ({override}) => {
});
test("blur search right", ({override}) => {
override(popovers, "show_userlist_sidebar", () => {});
override(right_sidebar_ui, "show_userlist_sidebar", () => {});
override(popovers, "hide_all", () => {});
override(popovers, "hide_all_except_sidebars", () => {});
override(resize, "resize_sidebars", () => {});
@@ -198,7 +199,7 @@ test("click on user header to toggle display", ({override}) => {
override(popovers, "hide_all", () => {});
override(popovers, "hide_all_except_sidebars", () => {});
override(popovers, "show_userlist_sidebar", () => {});
override(right_sidebar_ui, "show_userlist_sidebar", () => {});
override(resize, "resize_sidebars", () => {});
page_params.realm_presence_disabled = true;