refactor: rename command palette types and DOM selectors to search
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
export interface CommandPaletteItem {
|
export interface SearchItem {
|
||||||
id: string;
|
id: string;
|
||||||
type: string;
|
type: string;
|
||||||
label: string;
|
label: string;
|
||||||
@@ -9,30 +9,22 @@ export interface CommandPaletteItem {
|
|||||||
inWatchlist?: boolean;
|
inWatchlist?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CommandPaletteResponse {
|
export interface SearchResponse {
|
||||||
items: CommandPaletteItem[];
|
items: SearchItem[];
|
||||||
hasNextPage: boolean;
|
hasNextPage: boolean;
|
||||||
nextPage?: number;
|
nextPage?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const commandPaletteInitializedKey = Symbol("commandPaletteInitialized");
|
export const searchInitializedKey = Symbol("searchInitialized");
|
||||||
export const globalWindow = window as Window & { [commandPaletteInitializedKey]?: boolean };
|
export const globalWindow = window as Window & { [searchInitializedKey]?: boolean };
|
||||||
|
|
||||||
export const searchInput = document.getElementById(
|
export const searchInput = document.getElementById("search-input") as HTMLInputElement | null;
|
||||||
"command-palette-input",
|
export const searchResults = document.querySelector("[data-search-results]") as HTMLElement | null;
|
||||||
) as HTMLInputElement | null;
|
export const searchRoot = document.querySelector("[data-search-root]") as HTMLElement | null;
|
||||||
export const searchResults = document.querySelector(
|
export const searchPage = document.querySelector("[data-search-page]") as HTMLElement | null;
|
||||||
"[data-command-palette-results]",
|
export const searchClearButtons = document.querySelectorAll("[data-search-clear]");
|
||||||
) as HTMLElement | null;
|
|
||||||
export const searchRoot = document.querySelector(
|
|
||||||
"[data-command-palette-root]",
|
|
||||||
) as HTMLElement | null;
|
|
||||||
export const searchPage = document.querySelector(
|
|
||||||
"[data-command-palette-page]",
|
|
||||||
) as HTMLElement | null;
|
|
||||||
export const searchClearButtons = document.querySelectorAll("[data-command-palette-clear]");
|
|
||||||
|
|
||||||
let resultItems: CommandPaletteItem[] = [];
|
let resultItems: SearchItem[] = [];
|
||||||
let selectedIndex = 0;
|
let selectedIndex = 0;
|
||||||
let fetchTimeout: number | undefined;
|
let fetchTimeout: number | undefined;
|
||||||
let lastQuery = "";
|
let lastQuery = "";
|
||||||
@@ -42,9 +34,9 @@ let searchHasNextPage = false;
|
|||||||
let fetchingNextPage = false;
|
let fetchingNextPage = false;
|
||||||
let lastFocusedSearchOpener: HTMLElement | null = null;
|
let lastFocusedSearchOpener: HTMLElement | null = null;
|
||||||
|
|
||||||
export const getResultItems = (): CommandPaletteItem[] => resultItems;
|
export const getResultItems = (): SearchItem[] => resultItems;
|
||||||
|
|
||||||
export const setResultItems = (items: CommandPaletteItem[]): void => {
|
export const setResultItems = (items: SearchItem[]): void => {
|
||||||
resultItems = items;
|
resultItems = items;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -108,10 +100,10 @@ export const focusLastSearchOpener = (): void => {
|
|||||||
const maxCachedResponses = 20;
|
const maxCachedResponses = 20;
|
||||||
|
|
||||||
const createResponseCache = () => {
|
const createResponseCache = () => {
|
||||||
const responses = new Map<string, CommandPaletteResponse>();
|
const responses = new Map<string, SearchResponse>();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
get(query: string): CommandPaletteResponse | undefined {
|
get(query: string): SearchResponse | undefined {
|
||||||
const response = responses.get(query);
|
const response = responses.get(query);
|
||||||
if (!response) {
|
if (!response) {
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -122,7 +114,7 @@ const createResponseCache = () => {
|
|||||||
return response;
|
return response;
|
||||||
},
|
},
|
||||||
|
|
||||||
set(query: string, response: CommandPaletteResponse): void {
|
set(query: string, response: SearchResponse): void {
|
||||||
if (responses.has(query)) {
|
if (responses.has(query)) {
|
||||||
responses.delete(query);
|
responses.delete(query);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user