diff --git a/app/src/boot/globalEvent/searchKeydown.ts b/app/src/boot/globalEvent/searchKeydown.ts index 34b64da79..4d89b1a1b 100644 --- a/app/src/boot/globalEvent/searchKeydown.ts +++ b/app/src/boot/globalEvent/searchKeydown.ts @@ -6,7 +6,6 @@ import {fetchPost} from "../../util/fetch"; import {openFileById} from "../../editor/util"; import {Constants} from "../../constants"; import {newFileByName} from "../../util/newFile"; -import {upDownHint} from "../../util/upDownHint"; import {App} from "../../index"; import {Dialog} from "../../dialog"; import {getAllModels} from "../../layout/getAll"; @@ -64,71 +63,24 @@ export const searchKeydown = (app: App, event: KeyboardEvent) => { return true; } const targetId = (event.target as HTMLElement).id; - const historyElement = element.querySelector("#searchHistoryList"); - const replaceHistoryElement = element.querySelector("#replaceHistoryList"); - const replaceInputElement = element.querySelector("#replaceInput") as HTMLInputElement; const assetHistoryElement = assetsElement.querySelector("#searchAssetHistoryList"); const assetInputElement = assetsElement.querySelector("#searchAssetInput") as HTMLInputElement; - const assetPreviewElement = assetsElement.querySelector("#searchAssetPreview"); if (event.key === "ArrowDown" && event.altKey) { if (isAsset) { toggleAssetHistory(assetHistoryElement, assetInputElement); } else { if (targetId === "replaceInput") { - toggleReplaceHistory(replaceHistoryElement, historyElement, replaceInputElement); + toggleReplaceHistory(element); } else { - toggleSearchHistory(historyElement, replaceHistoryElement, searchInputElement); + toggleSearchHistory(element, config, edit); } } return true; } const assetLocal = window.siyuan.storage[Constants.LOCAL_SEARCHASSET] as ISearchAssetOption; - let history; - if (!historyElement.classList.contains("fn__none")) { - history = "history"; - } else if (!replaceHistoryElement.classList.contains("fn__none")) { - history = "replaceHistory"; - } else if (isAsset && !assetHistoryElement.classList.contains("fn__none")) { - history = "assetHistory"; - } - if (history) { - if (event.key === "Escape") { - if (isAsset) { - toggleAssetHistory(assetHistoryElement, assetInputElement); - } else { - if ((event.target as HTMLElement).id === "replaceInput") { - toggleReplaceHistory(replaceHistoryElement, historyElement, replaceInputElement); - } else { - toggleSearchHistory(historyElement, replaceHistoryElement, searchInputElement); - } - } - } else if (event.key === "Enter") { - if (history === "replaceHistory") { - replaceInputElement.value = replaceHistoryElement.querySelector(".b3-list-item--focus").textContent.trim(); - toggleReplaceHistory(replaceHistoryElement, historyElement, replaceInputElement); - } else if (history === "assetHistory") { - assetInputElement.value = assetHistoryElement.querySelector(".b3-list-item--focus").textContent.trim(); - assetInputEvent(assetsElement, assetLocal); - toggleAssetHistory(assetHistoryElement, assetInputElement); - renderPreview(assetPreviewElement, currentList.dataset.id, assetInputElement.value, assetLocal.method); - } else { - searchInputElement.value = historyElement.querySelector(".b3-list-item--focus").textContent.trim(); - config.page = 1; - inputEvent(element, config, edit, true); - toggleSearchHistory(historyElement, replaceHistoryElement, searchInputElement); - } - } else { - if (history === "assetHistory") { - upDownHint(assetHistoryElement, event); - } else { - if (history === "replaceHistory") { - upDownHint(replaceHistoryElement, event); - } else { - upDownHint(historyElement, event); - } - } - } - return true; + if (!window.siyuan.menus.menu.element.classList.contains("fn__none")) { + // 不能返回 true,否则历史菜单无法使用快捷键 + return false; } if (currentList.getAttribute("data-type") === "search-new") { if (event.key === "Enter") { @@ -268,6 +220,7 @@ export const searchKeydown = (app: App, event: KeyboardEvent) => { return true; } const lineHeight = 28; + const assetPreviewElement = assetsElement.querySelector("#searchAssetPreview"); if (event.key === "ArrowDown") { currentList.classList.remove("b3-list-item--focus"); if (!currentList.nextElementSibling) { diff --git a/app/src/menus/Menu.ts b/app/src/menus/Menu.ts index 150295980..677f4a1d0 100644 --- a/app/src/menus/Menu.ts +++ b/app/src/menus/Menu.ts @@ -84,7 +84,7 @@ export class Menu { } public addSeparator(index?: number) { - this.addItem({type: "separator", index}); + return this.addItem({type: "separator", index}); } public addItem(option: IMenu) { diff --git a/app/src/mobile/util/keyboardToolbar.ts b/app/src/mobile/util/keyboardToolbar.ts index 0ea1d59e7..e9298706f 100644 --- a/app/src/mobile/util/keyboardToolbar.ts +++ b/app/src/mobile/util/keyboardToolbar.ts @@ -12,7 +12,6 @@ import {getCurrentEditor} from "../editor"; import {fontEvent, getFontNodeElements} from "../../protyle/toolbar/Font"; import {hideElements} from "../../protyle/ui/hideElements"; import {input} from "../../protyle/wysiwyg/input"; -import {showMessage} from "../../dialog/message"; let renderKeyboardToolbarTimeout: number; let showUtil = false; diff --git a/app/src/plugin/Menu.ts b/app/src/plugin/Menu.ts index e6744ad69..2d00739cb 100644 --- a/app/src/plugin/Menu.ts +++ b/app/src/plugin/Menu.ts @@ -38,7 +38,7 @@ export class Menu { if (this.isOpen) { return; } - this.menu.addSeparator(index); + return this.menu.addSeparator(index); } open(options:IPosition) { diff --git a/app/src/protyle/render/av/action.ts b/app/src/protyle/render/av/action.ts index a368fcf0c..a97fd46a9 100644 --- a/app/src/protyle/render/av/action.ts +++ b/app/src/protyle/render/av/action.ts @@ -98,7 +98,7 @@ export const avClick = (protyle: IProtyle, event: MouseEvent & { target: HTMLEle event.stopPropagation(); return true; } else if (type === "av-add") { - addView(protyle, blockElement) + addView(protyle, blockElement); event.preventDefault(); event.stopPropagation(); return true; diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index 49c1d749e..0a3e77301 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -231,11 +231,11 @@ export const openMenuPanel = (options: { previousID: sourceElement.previousElementSibling?.getAttribute("data-id") }]); if (isTop) { - targetElement.before(sourceElement) - targetElement.classList.remove("dragover__top") + targetElement.before(sourceElement); + targetElement.classList.remove("dragover__top"); } else { - targetElement.after(sourceElement) - targetElement.classList.remove("dragover__bottom") + targetElement.after(sourceElement); + targetElement.classList.remove("dragover__bottom"); } return; } @@ -953,8 +953,8 @@ export const openMenuPanel = (options: { blockElement: options.blockElement as HTMLElement, element: target.parentElement }); - avPanelElement.querySelector(".b3-chip--primary").classList.remove("b3-chip--primary") - target.parentElement.querySelector(".b3-chip").classList.add("b3-chip--primary") + avPanelElement.querySelector(".b3-chip--primary").classList.remove("b3-chip--primary"); + target.parentElement.querySelector(".b3-chip").classList.add("b3-chip--primary"); }, target.parentElement.dataset.id); } event.preventDefault(); diff --git a/app/src/protyle/render/av/view.ts b/app/src/protyle/render/av/view.ts index dd9ac01b5..1c9107542 100644 --- a/app/src/protyle/render/av/view.ts +++ b/app/src/protyle/render/av/view.ts @@ -153,7 +153,7 @@ export const getViewHTML = (data: IAVTable) => { }; export const getSwitcherHTML = (views: IAVView[], viewId: string) => { - let html = "" + let html = ""; views.forEach((item) => { html += ` ${html} -` -} +`; +}; export const addView = (protyle: IProtyle, blockElement: Element) => { const id = Lute.NewNodeID(); @@ -188,4 +188,4 @@ export const addView = (protyle: IProtyle, blockElement: Element) => { avID, id }]); -} +}; diff --git a/app/src/search/util.ts b/app/src/search/util.ts index 74332bf31..c0536a2d2 100644 --- a/app/src/search/util.ts +++ b/app/src/search/util.ts @@ -38,51 +38,142 @@ import { toggleAssetHistory } from "./assets"; import {resize} from "../protyle/util/resize"; +import {Menu} from "../plugin/Menu"; -export const toggleReplaceHistory = (replaceHistoryElement: Element, historyElement: Element, replaceInputElement: HTMLInputElement) => { - if (replaceHistoryElement.classList.contains("fn__none")) { - const list = window.siyuan.storage[Constants.LOCAL_SEARCHKEYS]; - if (!list.replaceKeys || list.replaceKeys.length === 0) { - return; - } - let html = ""; - list.replaceKeys.forEach((s: string) => { - if (s !== replaceInputElement.value && s) { - html += `