diff --git a/app/src/business/openRecentDocs.ts b/app/src/business/openRecentDocs.ts
index 06d6ec81f..894ea04a5 100644
--- a/app/src/business/openRecentDocs.ts
+++ b/app/src/business/openRecentDocs.ts
@@ -10,17 +10,25 @@ import {focusByRange} from "../protyle/util/selection";
import {hasClosestByClassName} from "../protyle/util/hasClosest";
import {hideElements} from "../protyle/ui/hideElements";
-const getHTML = async (data: { rootID: string, icon: string, title: string, viewedAt?: number, closedAt?: number, openAt?: number, updated?: number }[], element: Element, key?: string, sortBy: "viewedAt" | "closedAt" | "openAt" | "updated" = "viewedAt") => {
+const getHTML = async (data: {
+ rootID: string,
+ icon: string,
+ title: string,
+ viewedAt?: number,
+ closedAt?: number,
+ openAt?: number,
+ updated?: number
+}[], element: Element, key?: string, sortBy: TRecentDocsSort = "viewedAt") => {
let tabHtml = "";
let index = 0;
-
+
// 根据排序字段对数据进行排序
const sortedData = [...data].sort((a, b) => {
const aValue = a[sortBy] || 0;
const bValue = b[sortBy] || 0;
return bValue - aValue; // 降序排序
});
-
+
sortedData.forEach((item) => {
if (!key || item.title.toLowerCase().includes(key.toLowerCase())) {
tabHtml += `
@@ -99,12 +107,13 @@ export const openRecentDocs = () => {
-
-
`,
@@ -122,13 +131,13 @@ export const openRecentDocs = () => {
const searchElement = dialog.element.querySelector("input");
searchElement.focus();
searchElement.addEventListener("compositionend", () => {
- getHTML(response.data, dialog.element, searchElement.value, sortSelect.value as "viewedAt" | "closedAt" | "openAt" | "updated");
+ getHTML(response.data, dialog.element, searchElement.value, sortSelect.value as TRecentDocsSort);
});
searchElement.addEventListener("input", (event: InputEvent) => {
if (event.isComposing) {
return;
}
- getHTML(response.data, dialog.element, searchElement.value, sortSelect.value as "viewedAt" | "closedAt" | "openAt" | "updated");
+ getHTML(response.data, dialog.element, searchElement.value, sortSelect.value as TRecentDocsSort);
});
dialog.element.setAttribute("data-key", Constants.DIALOG_RECENTDOCS);
dialog.element.addEventListener("click", (event) => {
@@ -141,7 +150,7 @@ export const openRecentDocs = () => {
event.preventDefault();
}
});
-
+
// 添加排序下拉框事件监听
const sortSelect = dialog.element.querySelector("#recentDocsSort") as HTMLSelectElement;
sortSelect.addEventListener("change", () => {
@@ -165,7 +174,7 @@ export const openRecentDocs = () => {
}
return {
rootID: block.id,
- icon: icon,
+ icon,
title: block.content,
updated: block.updated
};
@@ -175,11 +184,11 @@ export const openRecentDocs = () => {
});
} else {
fetchPost("/api/storage/getRecentDocs", {sortBy: sortSelect.value}, (newResponse) => {
- getHTML(newResponse.data, dialog.element, searchElement.value, sortSelect.value as "viewedAt" | "closedAt" | "openAt");
+ getHTML(newResponse.data, dialog.element, searchElement.value, sortSelect.value as TRecentDocsSort);
});
}
});
-
+
getHTML(response.data, dialog.element);
});
};
diff --git a/app/src/layout/util.ts b/app/src/layout/util.ts
index 06eccdbeb..bb2e169c1 100644
--- a/app/src/layout/util.ts
+++ b/app/src/layout/util.ts
@@ -723,6 +723,7 @@ export const resizeTopBar = () => {
});
};
+// TODO: 需支持所有页签类型,避免其他类型页签没有使用到而加载
export const newModelByInitData = (app: App, tab: Tab, json: any) => {
let model: Model;
if (json.instance === "Custom") {
diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts
index 4b05128a1..873184b8c 100644
--- a/app/src/types/index.d.ts
+++ b/app/src/types/index.d.ts
@@ -126,6 +126,8 @@ type TAVFilterOperator =
| "Is true"
| "Is false"
+type TRecentDocsSort = "viewedAt" | "closedAt" | "openAt" | "updated"
+
declare module "blueimp-md5"
declare class Highlight {