diff --git a/app/src/search/assets.ts b/app/src/search/assets.ts
index cc9cf4355..21321709f 100644
--- a/app/src/search/assets.ts
+++ b/app/src/search/assets.ts
@@ -73,7 +73,7 @@ export const openSearchAsset = (element: Element, isStick: boolean) => {
-
↑/↓ ${window.siyuan.languages.searchTip1}
+
↑/↓/PageUp/PageDown ${window.siyuan.languages.searchTip1}
${enterTip}
Click ${window.siyuan.languages.searchTip3}
Esc ${window.siyuan.languages.searchTip5}
@@ -178,9 +178,7 @@ export const openSearchAsset = (element: Element, isStick: boolean) => {
}
event.preventDefault();
renderPreview(previewElement, currentList.dataset.id, searchInputElement.value, localSearch.method);
- return;
- }
- if (event.key === "ArrowUp") {
+ } else if (event.key === "ArrowUp") {
currentList.classList.remove("b3-list-item--focus");
if (!currentList.previousElementSibling) {
searchPanelElement.lastElementChild.classList.add("b3-list-item--focus");
@@ -194,6 +192,24 @@ export const openSearchAsset = (element: Element, isStick: boolean) => {
}
event.preventDefault();
renderPreview(previewElement, currentList.dataset.id, searchInputElement.value, localSearch.method);
+ } else if (Constants.KEYCODELIST[event.keyCode] === "PageUp") {
+ if (!element.querySelector('[data-type="assetPrevious"]').getAttribute("disabled")) {
+ let currentPage = parseInt(element.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[0])
+ if (currentPage > 1) {
+ currentPage--;
+ assetInputEvent(element, localSearch, currentPage);
+ }
+ }
+ event.preventDefault();
+ } else if (Constants.KEYCODELIST[event.keyCode] === "PageDown") {
+ if (!element.querySelector('[data-type="assetNext"]').getAttribute("disabled")) {
+ let currentPage = parseInt(element.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[0])
+ if (currentPage < parseInt(element.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[1])) {
+ currentPage++;
+ assetInputEvent(element, localSearch, currentPage);
+ }
+ }
+ event.preventDefault();
}
});
assetInputEvent(element, localSearch);
@@ -236,7 +252,7 @@ export const openSearchAsset = (element: Element, isStick: boolean) => {
};
let inputTimeout: number;
-export const assetInputEvent = (element: Element, localSearch?: ISearchAssetOption, page = 1,) => {
+export const assetInputEvent = (element: Element, localSearch?: ISearchAssetOption, page = 1) => {
element.nextElementSibling.classList.remove("fn__none");
clearTimeout(inputTimeout);
inputTimeout = window.setTimeout(() => {
diff --git a/app/src/search/util.ts b/app/src/search/util.ts
index c2e78fbf2..631f52ffc 100644
--- a/app/src/search/util.ts
+++ b/app/src/search/util.ts
@@ -235,7 +235,7 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo
- ↑/↓ ${window.siyuan.languages.searchTip1}
+ ↑/↓/PageUp/PageDown ${window.siyuan.languages.searchTip1}
${updateHotkeyTip(window.siyuan.config.keymap.general.newFile.custom)} ${window.siyuan.languages.new}
Enter/Double Click ${window.siyuan.languages.searchTip2}
Click ${window.siyuan.languages.searchTip3}
@@ -649,14 +649,22 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo
break;
} else if (type === "assetPrevious") {
if (!target.getAttribute("disabled")) {
- assetInputEvent(assetsElement, localSearch, parseInt(assetsElement.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[1]) - 1);
+ let currentPage = parseInt(assetsElement.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[0])
+ if (currentPage > 1) {
+ currentPage--;
+ assetInputEvent(assetsElement, localSearch, currentPage);
+ }
}
event.stopPropagation();
event.preventDefault();
break;
} else if (type === "assetNext") {
if (!target.getAttribute("disabled")) {
- assetInputEvent(assetsElement, localSearch, parseInt(assetsElement.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[1]) + 1);
+ let currentPage = parseInt(assetsElement.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[0])
+ if (currentPage < parseInt(assetsElement.querySelector("#searchAssetResult .fn__flex-center").textContent.split("/")[1])) {
+ currentPage++;
+ assetInputEvent(assetsElement, localSearch, currentPage);
+ }
}
event.stopPropagation();
event.preventDefault();