From e2017a9fba2b57854cb7992dc939ea768acec1df Mon Sep 17 00:00:00 2001 From: Vanessa Date: Wed, 11 Dec 2024 23:39:36 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/13415 --- app/src/mobile/menu/search.ts | 13 ++++++++++++- app/src/search/assets.ts | 14 ++------------ app/src/search/toggleHistory.ts | 27 +++++++++++++++++++++++++++ app/src/search/util.ts | 14 +------------- 4 files changed, 42 insertions(+), 26 deletions(-) diff --git a/app/src/mobile/menu/search.ts b/app/src/mobile/menu/search.ts index 7423de624..5aeaf117a 100644 --- a/app/src/mobile/menu/search.ts +++ b/app/src/mobile/menu/search.ts @@ -26,7 +26,13 @@ import { import {addClearButton} from "../../util/addClearButton"; import {checkFold} from "../../util/noRelyPCFunction"; import {getDefaultType} from "../../search/getDefault"; -import {toggleAssetHistory, toggleReplaceHistory, toggleSearchHistory} from "../../search/toggleHistory"; +import { + saveAssetKeyList, + saveKeyList, + toggleAssetHistory, + toggleReplaceHistory, + toggleSearchHistory +} from "../../search/toggleHistory"; const replace = (element: Element, config: Config.IUILayoutTabSearchConfig, isAll: boolean) => { if (config.method === 1 || config.method === 2) { @@ -40,6 +46,7 @@ const replace = (element: Element, config: Config.IUILayoutTabSearchConfig, isAl if (!loadElement.classList.contains("fn__none")) { return; } + saveKeyList("replaceKeys", replaceInputElement.value); let currentLiElement: HTMLElement = searchListElement.querySelector(".b3-list-item--focus"); if (!currentLiElement) { return; @@ -288,6 +295,7 @@ const initSearchEvent = (app: App, element: Element, config: Config.IUILayoutTab window.siyuan.storage[Constants.LOCAL_SEARCHDATA] = Object.assign({}, config); setStorageVal(Constants.LOCAL_SEARCHDATA, window.siyuan.storage[Constants.LOCAL_SEARCHDATA]); } + saveKeyList("keys", searchInputElement.value); }); addClearButton({ inputElement: searchInputElement, @@ -802,6 +810,9 @@ const goAsset = () => { } assetInputEvent(assetsElement, localSearch); }); + inputElement.addEventListener("blur", () => { + saveAssetKeyList(inputElement) + }); assetInputEvent(assetsElement, localSearch); addClearButton({ inputElement, diff --git a/app/src/search/assets.ts b/app/src/search/assets.ts index 55072f4cc..fe3bd7722 100644 --- a/app/src/search/assets.ts +++ b/app/src/search/assets.ts @@ -12,6 +12,7 @@ import {hasClosestByClassName} from "../protyle/util/hasClosest"; import {addClearButton} from "../util/addClearButton"; import {isPaidUser} from "../util/needSubscribe"; import {showMessage} from "../dialog/message"; +import {saveAssetKeyList} from "./toggleHistory"; export const openSearchAsset = (element: Element, isStick: boolean) => { /// #if !MOBILE @@ -108,18 +109,7 @@ export const openSearchAsset = (element: Element, isStick: boolean) => { assetInputEvent(element, localSearch); }); searchInputElement.addEventListener("blur", () => { - if (!searchInputElement.value) { - return; - } - let list: string[] = window.siyuan.storage[Constants.LOCAL_SEARCHASSET].keys; - list.splice(0, 0, searchInputElement.value); - list = Array.from(new Set(list)); - if (list.length > window.siyuan.config.search.limit) { - list.splice(window.siyuan.config.search.limit, list.length - window.siyuan.config.search.limit); - } - window.siyuan.storage[Constants.LOCAL_SEARCHASSET].k = searchInputElement.value; - window.siyuan.storage[Constants.LOCAL_SEARCHASSET].keys = list; - setStorageVal(Constants.LOCAL_SEARCHASSET, window.siyuan.storage[Constants.LOCAL_SEARCHASSET]); + saveAssetKeyList(searchInputElement) }); assetInputEvent(element, localSearch); addClearButton({ diff --git a/app/src/search/toggleHistory.ts b/app/src/search/toggleHistory.ts index 241f0d9ea..d0cd8fa8e 100644 --- a/app/src/search/toggleHistory.ts +++ b/app/src/search/toggleHistory.ts @@ -220,3 +220,30 @@ export const toggleAssetHistory = (assetElement: Element) => { y: rect.bottom }); }; + +export const saveKeyList = (type: "keys" | "replaceKeys", value: string) => { + let list: string[] = window.siyuan.storage[Constants.LOCAL_SEARCHKEYS][type]; + list.splice(0, 0, value); + list = Array.from(new Set(list)); + if (list.length > window.siyuan.config.search.limit) { + list.splice(window.siyuan.config.search.limit, list.length - window.siyuan.config.search.limit); + } + // new Set 后需重新赋值 + window.siyuan.storage[Constants.LOCAL_SEARCHKEYS][type] = list; + setStorageVal(Constants.LOCAL_SEARCHKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHKEYS]); +}; + +export const saveAssetKeyList = (inputElement:HTMLInputElement) => { + if (!inputElement.value) { + return; + } + let list: string[] = window.siyuan.storage[Constants.LOCAL_SEARCHASSET].keys; + list.splice(0, 0, inputElement.value); + list = Array.from(new Set(list)); + if (list.length > window.siyuan.config.search.limit) { + list.splice(window.siyuan.config.search.limit, list.length - window.siyuan.config.search.limit); + } + window.siyuan.storage[Constants.LOCAL_SEARCHASSET].k = inputElement.value; + window.siyuan.storage[Constants.LOCAL_SEARCHASSET].keys = list; + setStorageVal(Constants.LOCAL_SEARCHASSET, window.siyuan.storage[Constants.LOCAL_SEARCHASSET]); +} diff --git a/app/src/search/util.ts b/app/src/search/util.ts index 5ec38b3a9..318faf604 100644 --- a/app/src/search/util.ts +++ b/app/src/search/util.ts @@ -50,19 +50,7 @@ import {checkFold} from "../util/noRelyPCFunction"; import {getUnRefList, openSearchUnRef, unRefMoreMenu} from "./unRef"; import {getDefaultType} from "./getDefault"; import {isSupportCSSHL, searchMarkRender} from "../protyle/render/searchMarkRender"; -import {toggleAssetHistory, toggleReplaceHistory, toggleSearchHistory} from "./toggleHistory"; - -const saveKeyList = (type: "keys" | "replaceKeys", value: string) => { - let list: string[] = window.siyuan.storage[Constants.LOCAL_SEARCHKEYS][type]; - list.splice(0, 0, value); - list = Array.from(new Set(list)); - if (list.length > window.siyuan.config.search.limit) { - list.splice(window.siyuan.config.search.limit, list.length - window.siyuan.config.search.limit); - } - // new Set 后需重新赋值 - window.siyuan.storage[Constants.LOCAL_SEARCHKEYS][type] = list; - setStorageVal(Constants.LOCAL_SEARCHKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHKEYS]); -}; +import {saveKeyList, toggleAssetHistory, toggleReplaceHistory, toggleSearchHistory} from "./toggleHistory"; export const openGlobalSearch = (app: App, text: string, replace: boolean, searchData?: Config.IUILayoutTabSearchConfig) => { text = text.trim();