Browse Source

:art: https://github.com/siyuan-note/siyuan/issues/3952

Vanessa 3 years ago
parent
commit
4a9ee67891
5 changed files with 42 additions and 5 deletions
  1. 5 0
      app/src/config/about.ts
  2. 1 1
      app/src/config/keymap.ts
  3. 1 1
      app/src/constants.ts
  4. 35 2
      app/src/layout/util.ts
  5. 0 1
      app/src/menus/tab.ts

+ 5 - 0
app/src/config/about.ts

@@ -190,8 +190,13 @@ export const about = {
                 const searchData = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEDATA) || "{}");
                 if (searchData.hPath) {
                     searchData.hPath = "";
+                    searchData.idPath = "";
                     localStorage.setItem(Constants.LOCAL_SEARCHEDATA, JSON.stringify(searchData));
                 }
+                localStorage.removeItem(Constants.LOCAL_DAILYNOTEID);
+                localStorage.removeItem(Constants.LOCAL_DOCINFO);
+                localStorage.removeItem(Constants.LOCAL_HISTORYNOTEID);
+                localStorage.removeItem("pdfjs.history");
                 exportLayout(false, () => {
                     exitSiYuan();
                 });

+ 1 - 1
app/src/config/keymap.ts

@@ -268,7 +268,7 @@ export const keymap = {
                     }
 
                     if (["⌘", "⇧", "⌥", "⌃"].includes(keymapStr.substr(keymapStr.length - 1, 1)) ||
-                        ["⌘S", "⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⌘↑", "⌘↓", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦", "F9"].includes(keymapStr)) {
+                        ["⌘S", "⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⌘↑", "⌘↓", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦", "F9"].includes(keymapStr)) {
                         showMessage(tip + "] " + window.siyuan.languages.invalid);
                         return;
                     }

+ 1 - 1
app/src/constants.ts

@@ -82,7 +82,7 @@ export abstract class Constants {
     };
 
     // "⌘", "⇧", "⌥", "⌃"
-    // "⌘S", "⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⌘↑", "⌘↓", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦", "F9" 不可自定义
+    // "⌘S", "⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⌘↑", "⌘↓", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦", "F9" 不可自定义
     public static readonly SIYUAN_KEYMAP: IKeymap = {
         general: {
             enterBack: {default: "⌥←", custom: "⌥←"},

+ 35 - 2
app/src/layout/util.ts

@@ -25,6 +25,39 @@ import {getContenteditableElement} from "../protyle/wysiwyg/getBlock";
 import {updatePanelByEditor} from "../editor/util";
 import {Constants} from "../constants";
 import {openSearch} from "../search/spread";
+import {Dialog} from "../dialog";
+import {isMobile} from "../util/functions";
+
+export const openCloseRecentTab = () => {
+    const recentClose = JSON.parse(localStorage.getItem(Constants.LOCAL_RECENTCLOSE) || "[]");
+    let html = ''
+    if (recentClose.length === 0) {
+        html += `<li class="b3-list-item b3-list--empty">${window.siyuan.languages.emptyContent}</li>`
+    } else {
+        recentClose.forEach((item: IObject) => {
+            html += `<li class="b3-list-item" data-instance="${item.instance}">${item.text}</li>`
+        })
+    }
+    const dialog = new Dialog({
+        title: window.siyuan.languages.recentClose,
+        content: `<div class="fn__flex-column" style="height: 100%;max-height: 70vh;">
+    <ul class="b3-list b3-list--background fn__flex-1">${html}</ul>
+    <div class="fn__hr"></div>
+</div>`,
+        width: isMobile() ? "80vw" : "50vw",
+    });
+    dialog.element.addEventListener("click", (event) => {
+        let target = event.target as HTMLElement
+        while (!target.isSameNode(dialog.element)) {
+            const instance = target.getAttribute("data-instance")
+            if (instance) {
+
+                break;
+            }
+            target = target.parentElement
+        }
+    })
+}
 
 export const setPanelFocus = (element: Element) => {
     if (element.classList.contains("block__icons--active") || element.classList.contains("layout__wnd--active")) {
@@ -245,7 +278,7 @@ const JSONToCenter = (json: any, layout?: Layout | Wnd | Tab | Model) => {
         }));
     } else if (json.instance === "Tag") {
         (layout as Tab).addModel(new Tag((layout as Tab)));
-    } else if (json.instance === "search") {
+    } else if (json.instance === "Search") {
         (layout as Tab).addModel(new Search({
             tab: (layout as Tab),
             text: json.text
@@ -353,7 +386,7 @@ export const layoutToJSON = (layout: Layout | Wnd | Tab | Model, json: any) => {
     } else if (layout instanceof Tag) {
         json.instance = "Tag";
     } else if (layout instanceof Search) {
-        json.instance = "search";
+        json.instance = "Search";
         json.text = layout.text;
     }
 

+ 0 - 1
app/src/menus/tab.ts

@@ -111,7 +111,6 @@ const closeMenu = (model: Model) => {
             }).element);
         }
     }
-
     window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
 };