diff --git a/app/src/mobile/menu/getRecentDocs.ts b/app/src/mobile/menu/getRecentDocs.ts new file mode 100644 index 000000000..33a6a9d42 --- /dev/null +++ b/app/src/mobile/menu/getRecentDocs.ts @@ -0,0 +1,32 @@ +import {fetchPost} from "../../util/fetch"; +import {unicode2Emoji} from "../../emoji"; +import {Constants} from "../../constants"; +import {escapeHtml} from "../../util/escape"; +import {hasClosestByClassName} from "../../protyle/util/hasClosest"; +import {openModel} from "./model"; +import {openMobileFileById} from "../editor"; + +export const getRecentDocs = () => { + fetchPost("/api/storage/getRecentDocs", {}, (response) => { + let html = ""; + response.data.forEach((item: any, index: number) => { + html += `
  • +${unicode2Emoji(item.icon || Constants.SIYUAN_IMAGE_FILE, false, "b3-list-item__graphic", true)} +${escapeHtml(item.title)} +
  • `; + }); + openModel({ + title: window.siyuan.languages.recentDocs, + icon: "iconList", + html: ``, + bindEvent(element: HTMLElement) { + element.addEventListener("click", (event) => { + const liElement = hasClosestByClassName(event.target as HTMLElement, "b3-list-item"); + if (liElement) { + openMobileFileById(liElement.dataset.nodeId, [Constants.CB_GET_SCROLL]) + } + }); + } + }) + }); +} diff --git a/app/src/mobile/util/menu.ts b/app/src/mobile/menu/index.ts similarity index 94% rename from app/src/mobile/util/menu.ts rename to app/src/mobile/menu/index.ts index c6aae01df..491327961 100644 --- a/app/src/mobile/util/menu.ts +++ b/app/src/mobile/menu/index.ts @@ -1,18 +1,19 @@ import {popSearch} from "./search"; import {initAppearance} from "../settings/appearance"; -import {closePanel} from "./closePanel"; +import {closePanel} from "../util/closePanel"; import {mountHelp, newDailyNote, newNotebook} from "../../util/mount"; import {repos} from "../../config/repos"; import {exitSiYuan, lockScreen, processSync} from "../../dialog/processSystem"; import {openHistory} from "../../history/history"; import {syncGuide} from "../../sync/syncGuide"; import {openCard} from "../../card/openCard"; -import {activeBlur, hideKeyboardToolbar} from "./keyboardToolbar"; +import {activeBlur, hideKeyboardToolbar} from "../util/keyboardToolbar"; import {initAI} from "../settings/ai"; import {initRiffCard} from "../settings/riffCard"; import {login, showAccountInfo} from "../settings/account"; import {openModel} from "./model"; import {initAbout} from "../settings/about"; +import {getRecentDocs} from "./getRecentDocs"; export const popMenu = () => { activeBlur(); @@ -39,6 +40,9 @@ export const popMenu = () => {
    ${accountHTML} + @@ -104,6 +108,11 @@ ${accountHTML} event.preventDefault(); event.stopPropagation(); break; + } else if (target.id === "menuRecent") { + getRecentDocs(); + event.preventDefault(); + event.stopPropagation(); + break; } else if (target.id === "menuAppearance") { initAppearance(); event.preventDefault(); diff --git a/app/src/mobile/util/model.ts b/app/src/mobile/menu/model.ts similarity index 100% rename from app/src/mobile/util/model.ts rename to app/src/mobile/menu/model.ts diff --git a/app/src/mobile/util/search.ts b/app/src/mobile/menu/search.ts similarity index 98% rename from app/src/mobile/util/search.ts rename to app/src/mobile/menu/search.ts index 1ebd06d5a..c7fca3acf 100644 --- a/app/src/mobile/util/search.ts +++ b/app/src/mobile/menu/search.ts @@ -1,4 +1,4 @@ -import {closePanel} from "./closePanel"; +import {closePanel} from "../util/closePanel"; import {openMobileFileById} from "../editor"; import {Constants} from "../../constants"; import {fetchPost} from "../../util/fetch"; diff --git a/app/src/mobile/settings/about.ts b/app/src/mobile/settings/about.ts index 57ae45437..d9460126c 100644 --- a/app/src/mobile/settings/about.ts +++ b/app/src/mobile/settings/about.ts @@ -7,7 +7,7 @@ import {showMessage} from "../../dialog/message"; import {openByMobile, writeText} from "../../protyle/util/compatibility"; import {exitSiYuan, processSync} from "../../dialog/processSystem"; import {pathPosix} from "../../util/pathName"; -import {openModel} from "../util/model"; +import {openModel} from "../menu/model"; export const initAbout = () => { if (!window.siyuan.config.localIPs || window.siyuan.config.localIPs.length === 0 || diff --git a/app/src/mobile/settings/account.ts b/app/src/mobile/settings/account.ts index e0c477375..7781f5ca9 100644 --- a/app/src/mobile/settings/account.ts +++ b/app/src/mobile/settings/account.ts @@ -1,4 +1,4 @@ -import {openModel} from "../util/model"; +import {openModel} from "../menu/model"; import {getEventName} from "../../protyle/util/compatibility"; import {fetchPost} from "../../util/fetch"; import {closePanel} from "../util/closePanel"; diff --git a/app/src/mobile/settings/ai.ts b/app/src/mobile/settings/ai.ts index 7037b045d..9b9cebe80 100644 --- a/app/src/mobile/settings/ai.ts +++ b/app/src/mobile/settings/ai.ts @@ -1,4 +1,4 @@ -import {openModel} from "../util/model"; +import {openModel} from "../menu/model"; import {ai} from "../../config/ai"; export const initAI = () => { diff --git a/app/src/mobile/settings/appearance.ts b/app/src/mobile/settings/appearance.ts index acded9881..13059270a 100644 --- a/app/src/mobile/settings/appearance.ts +++ b/app/src/mobile/settings/appearance.ts @@ -2,7 +2,7 @@ import {fetchPost} from "../../util/fetch"; import {setInlineStyle} from "../../util/assets"; import {genOptions} from "../../util/genOptions"; import {reloadProtyle} from "../../protyle/util/reload"; -import {openModel} from "../util/model"; +import {openModel} from "../menu/model"; export const initAppearance = () => { openModel({ diff --git a/app/src/mobile/settings/riffCard.ts b/app/src/mobile/settings/riffCard.ts index 13679101e..6f325a5cb 100644 --- a/app/src/mobile/settings/riffCard.ts +++ b/app/src/mobile/settings/riffCard.ts @@ -1,4 +1,4 @@ -import {openModel} from "../util/model"; +import {openModel} from "../menu/model"; import {flashcard} from "../../config/flashcard"; export const initRiffCard = () => { diff --git a/app/src/mobile/util/MobileTags.ts b/app/src/mobile/util/MobileTags.ts index 355109844..3201e91dd 100644 --- a/app/src/mobile/util/MobileTags.ts +++ b/app/src/mobile/util/MobileTags.ts @@ -5,7 +5,7 @@ import {MenuItem} from "../../menus/Menu"; import {Dialog} from "../../dialog"; import {confirmDialog} from "../../dialog/confirmDialog"; import {escapeHtml} from "../../util/escape"; -import {popSearch, toolbarSearchEvent} from "./search"; +import {popSearch, toolbarSearchEvent} from "../menu/search"; export class MobileTags { public element: HTMLElement; diff --git a/app/src/mobile/util/initFramework.ts b/app/src/mobile/util/initFramework.ts index 7fa2d3721..a786f1a60 100644 --- a/app/src/mobile/util/initFramework.ts +++ b/app/src/mobile/util/initFramework.ts @@ -8,7 +8,7 @@ import {setInlineStyle} from "../../util/assets"; import {renderSnippet} from "../../config/util/snippets"; import {setEmpty} from "./setEmpty"; import {getOpenNotebookCount} from "../../util/pathName"; -import {popMenu} from "./menu"; +import {popMenu} from "../menu"; import {MobileFiles} from "./MobileFiles"; import {MobileOutline} from "./MobileOutline"; import {hasTopClosestByTag} from "../../protyle/util/hasClosest";