mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +00:00
left_sidebar: Allow user to navigation on section headers.
(cherry picked from commit 2671aff7c3)
This commit is contained in:
@@ -304,6 +304,7 @@ async function test_search_venice(page: Page): Promise<void> {
|
|||||||
await common.clear_and_type(page, ".left-sidebar-search-input", "vEnI"); // Must be case insensitive.
|
await common.clear_and_type(page, ".left-sidebar-search-input", "vEnI"); // Must be case insensitive.
|
||||||
await page.waitForSelector(await get_stream_li(page, "Denmark"), {hidden: true});
|
await page.waitForSelector(await get_stream_li(page, "Denmark"), {hidden: true});
|
||||||
await page.waitForSelector(await get_stream_li(page, "Verona"), {hidden: true});
|
await page.waitForSelector(await get_stream_li(page, "Verona"), {hidden: true});
|
||||||
|
await arrow(page, "Down");
|
||||||
await page.waitForSelector((await get_stream_li(page, "Venice")) + " .highlighted_row", {
|
await page.waitForSelector((await get_stream_li(page, "Venice")) + " .highlighted_row", {
|
||||||
visible: true,
|
visible: true,
|
||||||
});
|
});
|
||||||
@@ -328,6 +329,10 @@ async function test_stream_search_filters_stream_list(page: Page): Promise<void>
|
|||||||
// Enter the search box and test highlighted suggestion
|
// Enter the search box and test highlighted suggestion
|
||||||
await page.click(".left-sidebar-search-input");
|
await page.click(".left-sidebar-search-input");
|
||||||
|
|
||||||
|
await page.waitForSelector("#views-label-container.highlighted_row", {visible: true});
|
||||||
|
|
||||||
|
await arrow(page, "Down");
|
||||||
|
|
||||||
await page.waitForSelector(".top_left_inbox.top_left_row.highlighted_row", {visible: true});
|
await page.waitForSelector(".top_left_inbox.top_left_row.highlighted_row", {visible: true});
|
||||||
|
|
||||||
await page.waitForSelector((await get_stream_li(page, "Verona")) + " .highlighted_row", {
|
await page.waitForSelector((await get_stream_li(page, "Verona")) + " .highlighted_row", {
|
||||||
@@ -336,7 +341,7 @@ async function test_stream_search_filters_stream_list(page: Page): Promise<void>
|
|||||||
|
|
||||||
// Navigate through suggestions using arrow keys
|
// Navigate through suggestions using arrow keys
|
||||||
// Reach core team
|
// Reach core team
|
||||||
for (let i = 0; i < 10; i += 1) {
|
for (let i = 0; i < 12; i += 1) {
|
||||||
await arrow(page, "Down");
|
await arrow(page, "Down");
|
||||||
}
|
}
|
||||||
await arrow(page, "Down"); // core team -> Denmark
|
await arrow(page, "Down"); // core team -> Denmark
|
||||||
|
|||||||
@@ -469,10 +469,21 @@ function all_rows(): JQuery {
|
|||||||
// NOTE: This function is designed to be used for keyboard navigation purposes.
|
// NOTE: This function is designed to be used for keyboard navigation purposes.
|
||||||
// This function returns all the rows in the left sidebar.
|
// This function returns all the rows in the left sidebar.
|
||||||
// It is used to find the first key for the ListCursor.
|
// It is used to find the first key for the ListCursor.
|
||||||
const $all_rows = $(".top_left_row, .bottom_left_row").not(".hidden-by-filters");
|
const $all_rows = $(
|
||||||
|
// All left sidebar view rows.
|
||||||
|
".top_left_row, " +
|
||||||
|
// All DM and channel rows.
|
||||||
|
".bottom_left_row, " +
|
||||||
|
// Views header.
|
||||||
|
"#left-sidebar-navigation-area:not(.hidden-by-filters) #views-label-container, " +
|
||||||
|
// DM Headers
|
||||||
|
"#direct-messages-section-header, " +
|
||||||
|
// All channel headers.
|
||||||
|
".stream-list-section-container:not(.no-display) .stream-list-subsection-header",
|
||||||
|
).not(".hidden-by-filters");
|
||||||
// Remove rows hidden due to being inactive or muted.
|
// Remove rows hidden due to being inactive or muted.
|
||||||
const $inactive_or_muted_rows = $(
|
const $inactive_or_muted_rows = $(
|
||||||
"#streams_list .stream-list-section-container:not(.showing-inactive-or-muted)" +
|
"#streams_list:not(.is_searching) .stream-list-section-container:not(.showing-inactive-or-muted)" +
|
||||||
" .inactive-or-muted-in-channel-folder .bottom_left_row:not(.hidden-by-filters)",
|
" .inactive-or-muted-in-channel-folder .bottom_left_row:not(.hidden-by-filters)",
|
||||||
);
|
);
|
||||||
// Remove rows in collapsed sections / folders.
|
// Remove rows in collapsed sections / folders.
|
||||||
@@ -604,21 +615,30 @@ export function set_event_handlers(): void {
|
|||||||
const $search_input = $(".left-sidebar-search-input").expectOne();
|
const $search_input = $(".left-sidebar-search-input").expectOne();
|
||||||
|
|
||||||
function keydown_enter_key(): void {
|
function keydown_enter_key(): void {
|
||||||
const row = left_sidebar_cursor.get_key();
|
const $row = left_sidebar_cursor.get_key();
|
||||||
|
|
||||||
if (row === undefined) {
|
if ($row === undefined) {
|
||||||
// This can happen for empty searches, no need to warn.
|
// This can happen for empty searches, no need to warn.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($(row).hasClass("stream-list-toggle-inactive-or-muted-channels")) {
|
if ($row[0]!.id === "views-label-container") {
|
||||||
$(row).trigger("click");
|
$row.find("#toggle-top-left-navigation-area-icon").trigger("click");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
$row.hasClass("stream-list-toggle-inactive-or-muted-channels") ||
|
||||||
|
$row[0]!.id === "direct-messages-section-header" ||
|
||||||
|
$row.hasClass("stream-list-subsection-header")
|
||||||
|
) {
|
||||||
|
$row.trigger("click");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Clear search input so that there is no confusion
|
// Clear search input so that there is no confusion
|
||||||
// about which search input is active.
|
// about which search input is active.
|
||||||
$search_input.val("");
|
$search_input.val("");
|
||||||
const $nearest_link = $(row).find("a").first();
|
const $nearest_link = $row.find("a").first();
|
||||||
if ($nearest_link.length > 0) {
|
if ($nearest_link.length > 0) {
|
||||||
// If the row has a link, we click it.
|
// If the row has a link, we click it.
|
||||||
$nearest_link[0]!.click();
|
$nearest_link[0]!.click();
|
||||||
|
|||||||
@@ -753,10 +753,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.highlighted_row.top_left_row,
|
#views-label-container,
|
||||||
.highlighted_row.bottom_left_row {
|
#direct-messages-section-header,
|
||||||
outline: 2px solid var(--color-outline-focus);
|
.stream-list-subsection-header,
|
||||||
outline-offset: -2px;
|
.top_left_row,
|
||||||
|
.bottom_left_row {
|
||||||
|
&.highlighted_row {
|
||||||
|
outline: 2px solid var(--color-outline-focus);
|
||||||
|
outline-offset: -2px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#stream_filters
|
#stream_filters
|
||||||
|
|||||||
Reference in New Issue
Block a user