From a210006ecdc4b3c622e3763b7d4a01a928cbd2e9 Mon Sep 17 00:00:00 2001 From: Aman Agrawal Date: Mon, 23 Oct 2023 02:23:05 +0000 Subject: [PATCH] popovers: Hide when starting certain actions. These are actions which can be called when a popover is open and it is better to close the popover when these actions are initiated. --- web/src/activity_ui.js | 1 + web/src/compose_actions.js | 2 ++ web/src/search.js | 1 + web/src/stream_list.js | 1 + web/tests/compose_actions.test.js | 3 +++ web/tests/stream_search.test.js | 10 ++++++++-- 6 files changed, 16 insertions(+), 2 deletions(-) diff --git a/web/src/activity_ui.js b/web/src/activity_ui.js index 2924ec2a0e..3b3be2c967 100644 --- a/web/src/activity_ui.js +++ b/web/src/activity_ui.js @@ -210,6 +210,7 @@ export function set_cursor_and_filter() { export function initiate_search() { if (user_filter) { + popovers.hide_all(); user_filter.initiate_search(); } } diff --git a/web/src/compose_actions.js b/web/src/compose_actions.js index ee84a472df..24a1a83160 100644 --- a/web/src/compose_actions.js +++ b/web/src/compose_actions.js @@ -17,6 +17,7 @@ import * as message_viewport from "./message_viewport"; import * as narrow_state from "./narrow_state"; import {page_params} from "./page_params"; import * as people from "./people"; +import * as popovers from "./popovers"; import * as reload_state from "./reload_state"; import * as resize from "./resize"; import * as settings_config from "./settings_config"; @@ -191,6 +192,7 @@ export function start(msg_type, opts) { blueslip.warn("Empty message type in compose.start"); } + popovers.hide_all(); autosize_message_content(); if (reload_state.is_in_progress()) { diff --git a/web/src/search.js b/web/src/search.js index 2685ea3aba..feb1bfcde6 100644 --- a/web/src/search.js +++ b/web/src/search.js @@ -238,6 +238,7 @@ export function open_search_bar_and_close_narrow_description() { } $(".navbar-search").addClass("expanded"); $("#message_view_header").addClass("hidden"); + popovers.hide_all(); } export function close_search_bar_and_open_narrow_description() { diff --git a/web/src/stream_list.js b/web/src/stream_list.js index 0755b30ec2..c9e98d9df6 100644 --- a/web/src/stream_list.js +++ b/web/src/stream_list.js @@ -907,6 +907,7 @@ export function hide_search_section() { } export function initiate_search() { + popovers.hide_all(); show_search_section(); const $filter = $(".stream-list-filter").expectOne(); diff --git a/web/tests/compose_actions.test.js b/web/tests/compose_actions.test.js index 1c2d422984..a1bade3ec3 100644 --- a/web/tests/compose_actions.test.js +++ b/web/tests/compose_actions.test.js @@ -58,6 +58,9 @@ mock_esm("../src/message_lists", { mock_esm("../src/resize", { reset_compose_message_max_height: noop, }); +mock_esm("../src/popovers", { + hide_all: noop, +}); const people = zrequire("people"); diff --git a/web/tests/stream_search.test.js b/web/tests/stream_search.test.js index 223c73645a..3e8b631e04 100644 --- a/web/tests/stream_search.test.js +++ b/web/tests/stream_search.test.js @@ -17,7 +17,9 @@ mock_esm("../src/resize", { resize_stream_filters_container: noop, }); -const popovers = mock_esm("../src/popovers"); +const popovers = mock_esm("../src/popovers", { + hide_all: noop, +}); const sidebar_ui = mock_esm("../src/sidebar_ui"); const stream_list = zrequire("stream_list"); @@ -188,5 +190,9 @@ run_test("expanding_sidebar", () => { stream_list.initiate_search(); - assert.deepEqual(events, ["popovers.hide_all", "sidebar_ui.show_streamlist_sidebar"]); + assert.deepEqual(events, [ + "popovers.hide_all", + "popovers.hide_all", + "sidebar_ui.show_streamlist_sidebar", + ]); });