mirror of
https://github.com/zulip/zulip.git
synced 2025-11-09 08:26:11 +00:00
hotkey: Focus visible input filter field on query streams hotkey.
Earlier, if pm_list or stream_list was zoomed in and hitting `q` hotkey would seemingly do nothing but in the background would add highlighted class to `stream_row` and toggle stream-list-filter. This commit fixes this behaviour by bringing focus to currently visible input filter field.
This commit is contained in:
committed by
Tim Abbott
parent
c071d952e1
commit
2a26f34983
@@ -1007,7 +1007,13 @@ export function process_hotkey(e, hotkey) {
|
|||||||
);
|
);
|
||||||
return true;
|
return true;
|
||||||
case "query_streams":
|
case "query_streams":
|
||||||
|
if (pm_list.is_zoomed_in()) {
|
||||||
|
pm_list.focus_pm_search_filter();
|
||||||
|
} else if (stream_list.is_zoomed_in()) {
|
||||||
|
topic_list.focus_topic_search_filter();
|
||||||
|
} else {
|
||||||
stream_list.initiate_search();
|
stream_list.initiate_search();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
case "query_users":
|
case "query_users":
|
||||||
activity_ui.initiate_search();
|
activity_ui.initiate_search();
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ import {localstorage} from "./localstorage.ts";
|
|||||||
import * as pm_list_data from "./pm_list_data.ts";
|
import * as pm_list_data from "./pm_list_data.ts";
|
||||||
import * as pm_list_dom from "./pm_list_dom.ts";
|
import * as pm_list_dom from "./pm_list_dom.ts";
|
||||||
import type {PMNode} from "./pm_list_dom.ts";
|
import type {PMNode} from "./pm_list_dom.ts";
|
||||||
|
import * as popovers from "./popovers.ts";
|
||||||
import * as resize from "./resize.ts";
|
import * as resize from "./resize.ts";
|
||||||
import * as scroll_util from "./scroll_util.ts";
|
import * as scroll_util from "./scroll_util.ts";
|
||||||
|
import * as sidebar_ui from "./sidebar_ui.ts";
|
||||||
import * as ui_util from "./ui_util.ts";
|
import * as ui_util from "./ui_util.ts";
|
||||||
import type {FullUnreadCountsData} from "./unread.ts";
|
import type {FullUnreadCountsData} from "./unread.ts";
|
||||||
import * as vdom from "./vdom.ts";
|
import * as vdom from "./vdom.ts";
|
||||||
@@ -31,6 +33,13 @@ export function is_zoomed_in(): boolean {
|
|||||||
return zoomed;
|
return zoomed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function focus_pm_search_filter(): void {
|
||||||
|
popovers.hide_all();
|
||||||
|
sidebar_ui.show_left_sidebar();
|
||||||
|
const $filter = $(".direct-messages-list-filter").expectOne();
|
||||||
|
$filter.trigger("focus");
|
||||||
|
}
|
||||||
|
|
||||||
function get_private_messages_section_header(): JQuery {
|
function get_private_messages_section_header(): JQuery {
|
||||||
return $("#direct-messages-section-header");
|
return $("#direct-messages-section-header");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import render_topic_list_item from "../templates/topic_list_item.hbs";
|
|||||||
|
|
||||||
import * as blueslip from "./blueslip.ts";
|
import * as blueslip from "./blueslip.ts";
|
||||||
import * as popover_menus from "./popover_menus.ts";
|
import * as popover_menus from "./popover_menus.ts";
|
||||||
|
import * as popovers from "./popovers.ts";
|
||||||
import * as scroll_util from "./scroll_util.ts";
|
import * as scroll_util from "./scroll_util.ts";
|
||||||
|
import * as sidebar_ui from "./sidebar_ui.ts";
|
||||||
import * as stream_topic_history from "./stream_topic_history.ts";
|
import * as stream_topic_history from "./stream_topic_history.ts";
|
||||||
import * as stream_topic_history_util from "./stream_topic_history_util.ts";
|
import * as stream_topic_history_util from "./stream_topic_history_util.ts";
|
||||||
import * as topic_list_data from "./topic_list_data.ts";
|
import * as topic_list_data from "./topic_list_data.ts";
|
||||||
@@ -44,6 +46,13 @@ export function clear(): void {
|
|||||||
active_widgets.clear();
|
active_widgets.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function focus_topic_search_filter(): void {
|
||||||
|
popovers.hide_all();
|
||||||
|
sidebar_ui.show_left_sidebar();
|
||||||
|
const $filter = $("#filter-topic-input").expectOne();
|
||||||
|
$filter.trigger("focus");
|
||||||
|
}
|
||||||
|
|
||||||
export function close(): void {
|
export function close(): void {
|
||||||
zoomed = false;
|
zoomed = false;
|
||||||
clear();
|
clear();
|
||||||
|
|||||||
@@ -83,7 +83,9 @@ const reactions = mock_esm("../src/reactions");
|
|||||||
const read_receipts = mock_esm("../src/read_receipts");
|
const read_receipts = mock_esm("../src/read_receipts");
|
||||||
const search = mock_esm("../src/search");
|
const search = mock_esm("../src/search");
|
||||||
const settings_data = mock_esm("../src/settings_data");
|
const settings_data = mock_esm("../src/settings_data");
|
||||||
const stream_list = mock_esm("../src/stream_list");
|
const stream_list = mock_esm("../src/stream_list", {
|
||||||
|
is_zoomed_in: () => false,
|
||||||
|
});
|
||||||
const stream_popover = mock_esm("../src/stream_popover");
|
const stream_popover = mock_esm("../src/stream_popover");
|
||||||
const stream_settings_ui = mock_esm("../src/stream_settings_ui");
|
const stream_settings_ui = mock_esm("../src/stream_settings_ui");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user