diff --git a/app/src/index.ts b/app/src/index.ts index 849a73bbc..f68939deb 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -21,6 +21,7 @@ import { import {promiseTransactions} from "./protyle/wysiwyg/transaction"; import {initMessage} from "./dialog/message"; import {resizeDrag} from "./layout/util"; +import {setLocalStorage} from "./protyle/util/compatibility"; class App { constructor() { @@ -81,6 +82,7 @@ class App { }), menus: new Menus() }; + setLocalStorage(); fetchPost("/api/system/getConf", {}, response => { window.siyuan.config = response.data.conf; fetchGet(`/appearance/langs/${window.siyuan.config.appearance.lang}.json?v=${Constants.SIYUAN_VERSION}`, (lauguages) => { diff --git a/app/src/layout/util.ts b/app/src/layout/util.ts index 1c8cba7ab..f1a93e343 100644 --- a/app/src/layout/util.ts +++ b/app/src/layout/util.ts @@ -10,7 +10,7 @@ import {setPadding} from "../protyle/ui/initUI"; import {newFile} from "../util/newFile"; import {Outline} from "./dock/Outline"; import {Bookmark} from "./dock/Bookmark"; -import {updateHotkeyTip} from "../protyle/util/compatibility"; +import {exportLocalStorage, updateHotkeyTip} from "../protyle/util/compatibility"; import {Tag} from "./dock/Tag"; import {getAllModels, getAllTabs} from "./getAll"; import {Asset} from "../asset"; @@ -138,7 +138,9 @@ const dockToJSON = (dock: Dock) => { export const resetLayout = () => { fetchPost("/api/system/setUILayout", {layout: {}}, () => { - window.location.reload(); + exportLocalStorage(() => { + window.location.reload(); + }); }); }; @@ -157,11 +159,13 @@ export const exportLayout = (reload: boolean, cb?: () => void) => { }; layoutToJSON(window.siyuan.layout.layout, layoutJSON.layout); fetchPost("/api/system/setUILayout", {layout: layoutJSON, exit: typeof cb !== "undefined"}, () => { - if (reload) { - window.location.reload(); - } else if (cb) { - cb(); - } + exportLocalStorage(() => { + if (reload) { + window.location.reload(); + } else if (cb) { + cb(); + } + }) }); }; diff --git a/app/src/mobile/index.ts b/app/src/mobile/index.ts index 3aae2f85c..61de41ed9 100644 --- a/app/src/mobile/index.ts +++ b/app/src/mobile/index.ts @@ -16,6 +16,7 @@ import {bootSync} from "../dialog/processSystem"; import {initMessage} from "../dialog/message"; import {goBack} from "./util/MobileBackFoward"; import {hideKeyboardToolbar, showKeyboardToolbar} from "./util/showKeyboardToolbar"; +import {setLocalStorage} from "../protyle/util/compatibility"; class App { constructor() { @@ -43,6 +44,7 @@ class App { window.siyuan.menus.menu.remove(); } }); + setLocalStorage(); fetchPost("/api/system/getConf", {}, confResponse => { confResponse.data.conf.keymap = Constants.SIYUAN_KEYMAP; window.siyuan.config = confResponse.data.conf; diff --git a/app/src/protyle/util/compatibility.ts b/app/src/protyle/util/compatibility.ts index effdbd773..016fa5f73 100644 --- a/app/src/protyle/util/compatibility.ts +++ b/app/src/protyle/util/compatibility.ts @@ -1,4 +1,5 @@ import {focusByRange} from "./selection"; +import {fetchPost} from "../../util/fetch"; export const openByMobile = (uri: string) => { if (!uri) { @@ -13,7 +14,7 @@ export const openByMobile = (uri: string) => { } }; -export const readText = async () => { +export const readText = async () => { if ("android" === window.siyuan.config.system.container && window.JSAndroid) { return window.JSAndroid.readClipboard(); } @@ -133,9 +134,15 @@ export const hotKey2Electron = (key: string) => { }; export const setLocalStorage = () => { - + fetchPost("/api/system/getLocalStorage", undefined, (response) => { + Object.keys(response.data).forEach(item => { + window.localStorage.setItem(item, response.data[item]); + }) + }); } -export const exportLocalStorage = () => { - +export const exportLocalStorage = (cb: () => void) => { + fetchPost("/api/system/setLocalStorage", {val: JSON.stringify(localStorage)}, (response) => { + cb(); + }); }