Vanessa 2023-01-01 14:08:29 +08:00
parent 853ba5be3a
commit e007324aa6
2 changed files with 79 additions and 68 deletions

View file

@ -47,6 +47,9 @@ class App {
case"progress": case"progress":
progressLoading(data); progressLoading(data);
break; break;
case"setLocalStorage":
setLocalStorage(data);
break;
case "rename": case "rename":
getAllTabs().forEach((tab) => { getAllTabs().forEach((tab) => {
if (tab.headElement) { if (tab.headElement) {

View file

@ -139,78 +139,86 @@ export const hotKey2Electron = (key: string) => {
return electronKey + key.substr(key.length - 1); return electronKey + key.substr(key.length - 1);
}; };
export const setLocalStorage = () => { export const setLocalStorage = (data?: IWebSocketData) => {
fetchPost("/api/storage/getLocalStorage", undefined, (response) => { if (data) {
window.siyuan.storage = response.data; setDefaultStorage(data)
// 历史数据迁移 } else {
const defaultStorage: any = {}; fetchPost("/api/storage/getLocalStorage", undefined, (response) => {
defaultStorage[Constants.LOCAL_SEARCHEKEYS] = { setDefaultStorage(response)
keys: [], });
replaceKeys: [], }
col: "",
row: "",
layout: 0
};
defaultStorage[Constants.LOCAL_PDFTHEME] = {light: "light", dark: "dark"};
defaultStorage[Constants.LOCAL_BAZAAR] = {
theme: "0",
template: "0",
icon: "0",
widget: "0",
};
defaultStorage[Constants.LOCAL_EXPORTWORD] = {removeAssets: false, mergeSubdocs: false};
defaultStorage[Constants.LOCAL_EXPORTPDF] = {
landscape: false,
marginType: "0",
scale: 1,
pageSize: "A4",
removeAssets: true,
keepFold: false,
mergeSubdocs: false,
};
defaultStorage[Constants.LOCAL_DOCINFO] = {
id: "",
action: []
};
defaultStorage[Constants.LOCAL_FONTSTYLES] = [];
defaultStorage[Constants.LOCAL_SEARCHEDATA] = {
sort: 0,
group: 0,
hasReplace: false,
method: 0,
hPath: "",
idPath: [],
k: "",
r: "",
types: {
document: window.siyuan.config.search.document,
heading: window.siyuan.config.search.heading,
list: window.siyuan.config.search.list,
listItem: window.siyuan.config.search.listItem,
codeBlock: window.siyuan.config.search.codeBlock,
htmlBlock: window.siyuan.config.search.htmlBlock,
mathBlock: window.siyuan.config.search.mathBlock,
table: window.siyuan.config.search.table,
blockquote: window.siyuan.config.search.blockquote,
superBlock: window.siyuan.config.search.superBlock,
paragraph: window.siyuan.config.search.paragraph,
}
};
[Constants.LOCAL_SEARCHEKEYS, Constants.LOCAL_PDFTHEME, Constants.LOCAL_BAZAAR, Constants.LOCAL_EXPORTWORD, };
Constants.LOCAL_EXPORTPDF, Constants.LOCAL_DOCINFO, Constants.LOCAL_FONTSTYLES, Constants.LOCAL_SEARCHEDATA].forEach((key) => { const setDefaultStorage = (response: IWebSocketData) => {
if (typeof response.data[key] === "string") { window.siyuan.storage = response.data;
try { // 历史数据迁移
window.siyuan.storage[key] = Object.assign(defaultStorage[key], JSON.parse(response.data[key])); const defaultStorage: any = {};
} catch (e) { defaultStorage[Constants.LOCAL_SEARCHEKEYS] = {
window.siyuan.storage[key] = defaultStorage[key]; keys: [],
} replaceKeys: [],
} else if (typeof response.data[key] === "undefined") { col: "",
row: "",
layout: 0
};
defaultStorage[Constants.LOCAL_PDFTHEME] = {light: "light", dark: "dark"};
defaultStorage[Constants.LOCAL_BAZAAR] = {
theme: "0",
template: "0",
icon: "0",
widget: "0",
};
defaultStorage[Constants.LOCAL_EXPORTWORD] = {removeAssets: false, mergeSubdocs: false};
defaultStorage[Constants.LOCAL_EXPORTPDF] = {
landscape: false,
marginType: "0",
scale: 1,
pageSize: "A4",
removeAssets: true,
keepFold: false,
mergeSubdocs: false,
};
defaultStorage[Constants.LOCAL_DOCINFO] = {
id: "",
action: []
};
defaultStorage[Constants.LOCAL_FONTSTYLES] = [];
defaultStorage[Constants.LOCAL_SEARCHEDATA] = {
sort: 0,
group: 0,
hasReplace: false,
method: 0,
hPath: "",
idPath: [],
k: "",
r: "",
types: {
document: window.siyuan.config.search.document,
heading: window.siyuan.config.search.heading,
list: window.siyuan.config.search.list,
listItem: window.siyuan.config.search.listItem,
codeBlock: window.siyuan.config.search.codeBlock,
htmlBlock: window.siyuan.config.search.htmlBlock,
mathBlock: window.siyuan.config.search.mathBlock,
table: window.siyuan.config.search.table,
blockquote: window.siyuan.config.search.blockquote,
superBlock: window.siyuan.config.search.superBlock,
paragraph: window.siyuan.config.search.paragraph,
}
};
[Constants.LOCAL_SEARCHEKEYS, Constants.LOCAL_PDFTHEME, Constants.LOCAL_BAZAAR, Constants.LOCAL_EXPORTWORD,
Constants.LOCAL_EXPORTPDF, Constants.LOCAL_DOCINFO, Constants.LOCAL_FONTSTYLES, Constants.LOCAL_SEARCHEDATA].forEach((key) => {
if (typeof response.data[key] === "string") {
try {
window.siyuan.storage[key] = Object.assign(defaultStorage[key], JSON.parse(response.data[key]));
} catch (e) {
window.siyuan.storage[key] = defaultStorage[key]; window.siyuan.storage[key] = defaultStorage[key];
} }
}); } else if (typeof response.data[key] === "undefined") {
window.siyuan.storage[key] = defaultStorage[key];
}
}); });
}; }
export const exportLocalStorage = (cb?: () => void) => { export const exportLocalStorage = (cb?: () => void) => {
fetchPost("/api/storage/setLocalStorage", {val: window.siyuan.storage}, () => { fetchPost("/api/storage/setLocalStorage", {val: window.siyuan.storage}, () => {