2023-01-26 18:55:17 +08:00
|
|
|
import {Constants} from "../constants";
|
|
|
|
|
import {webFrame} from "electron";
|
|
|
|
|
import {fetchPost} from "../util/fetch";
|
2024-01-06 14:08:56 +08:00
|
|
|
import {adjustLayout, getInstanceById, JSONToCenter} from "../layout/util";
|
2023-10-25 17:06:19 +08:00
|
|
|
import {resizeTabs} from "../layout/tabUtil";
|
2023-01-26 18:55:17 +08:00
|
|
|
import {initStatus} from "../layout/status";
|
|
|
|
|
import {appearance} from "../config/appearance";
|
|
|
|
|
import {initAssets, setInlineStyle} from "../util/assets";
|
|
|
|
|
import {renderSnippet} from "../config/util/snippets";
|
|
|
|
|
import {getSearch} from "../util/functions";
|
2023-04-06 22:25:50 +08:00
|
|
|
import {initWindow} from "../boot/onGetConfig";
|
2023-05-08 21:00:41 +08:00
|
|
|
import {App} from "../index";
|
2023-10-30 00:12:24 +08:00
|
|
|
import {afterLoadPlugin} from "../plugin/loader";
|
2023-05-26 16:37:18 +08:00
|
|
|
import {Tab} from "../layout/Tab";
|
2023-08-30 16:32:54 +08:00
|
|
|
import {initWindowEvent} from "../boot/globalEvent/event";
|
2023-01-26 18:55:17 +08:00
|
|
|
|
2023-10-30 00:12:24 +08:00
|
|
|
export const init = (app: App) => {
|
2023-01-26 18:55:17 +08:00
|
|
|
webFrame.setZoomFactor(window.siyuan.storage[Constants.LOCAL_ZOOM]);
|
2023-08-30 16:32:54 +08:00
|
|
|
initWindowEvent(app);
|
2023-01-26 18:55:17 +08:00
|
|
|
fetchPost("/api/system/getEmojiConf", {}, response => {
|
|
|
|
|
window.siyuan.emojis = response.data as IEmoji[];
|
2023-04-09 17:29:19 +08:00
|
|
|
|
|
|
|
|
const layout = JSON.parse(sessionStorage.getItem("layout") || "{}");
|
|
|
|
|
if (layout.layout) {
|
2023-05-10 00:01:47 +08:00
|
|
|
JSONToCenter(app, layout.layout);
|
2023-04-09 17:29:19 +08:00
|
|
|
window.siyuan.layout.centerLayout = window.siyuan.layout.layout;
|
2023-05-26 16:37:18 +08:00
|
|
|
afterLayout(app);
|
2023-04-09 17:29:19 +08:00
|
|
|
return;
|
|
|
|
|
}
|
2023-01-26 22:52:22 +08:00
|
|
|
const tabJSON = JSON.parse(getSearch("json"));
|
2023-01-27 22:37:22 +08:00
|
|
|
tabJSON.active = true;
|
2023-05-10 00:01:47 +08:00
|
|
|
JSONToCenter(app, {
|
2023-01-26 22:52:22 +08:00
|
|
|
direction: "lr",
|
|
|
|
|
resize: "lr",
|
|
|
|
|
size: "auto",
|
|
|
|
|
type: "center",
|
|
|
|
|
instance: "Layout",
|
|
|
|
|
children: [{
|
|
|
|
|
instance: "Wnd",
|
|
|
|
|
children: [tabJSON]
|
2023-01-26 18:55:17 +08:00
|
|
|
}]
|
|
|
|
|
});
|
|
|
|
|
window.siyuan.layout.centerLayout = window.siyuan.layout.layout;
|
2024-01-06 14:08:56 +08:00
|
|
|
adjustLayout(window.siyuan.layout.centerLayout);
|
2023-05-26 16:37:18 +08:00
|
|
|
afterLayout(app);
|
2023-01-26 18:55:17 +08:00
|
|
|
});
|
|
|
|
|
initStatus(true);
|
2023-05-18 19:27:21 +08:00
|
|
|
initWindow(app);
|
2023-01-26 18:55:17 +08:00
|
|
|
appearance.onSetappearance(window.siyuan.config.appearance);
|
|
|
|
|
initAssets();
|
|
|
|
|
setInlineStyle();
|
2023-10-29 09:29:36 +08:00
|
|
|
renderSnippet();
|
2023-01-26 18:55:17 +08:00
|
|
|
let resizeTimeout = 0;
|
|
|
|
|
window.addEventListener("resize", () => {
|
|
|
|
|
window.clearTimeout(resizeTimeout);
|
|
|
|
|
resizeTimeout = window.setTimeout(() => {
|
2024-01-06 14:08:56 +08:00
|
|
|
adjustLayout(window.siyuan.layout.centerLayout);
|
2023-01-26 18:55:17 +08:00
|
|
|
resizeTabs();
|
|
|
|
|
}, 200);
|
|
|
|
|
});
|
2023-01-26 23:29:32 +08:00
|
|
|
};
|
2023-05-26 16:37:18 +08:00
|
|
|
|
2023-10-29 09:29:36 +08:00
|
|
|
const afterLayout = (app: App) => {
|
2023-05-26 16:37:18 +08:00
|
|
|
app.plugins.forEach(item => {
|
|
|
|
|
afterLoadPlugin(item);
|
|
|
|
|
});
|
|
|
|
|
document.querySelectorAll('li[data-type="tab-header"][data-init-active="true"]').forEach((item: HTMLElement) => {
|
|
|
|
|
item.removeAttribute("data-init-active");
|
|
|
|
|
const tab = getInstanceById(item.getAttribute("data-id")) as Tab;
|
|
|
|
|
tab.parent.switchTab(item, false, false);
|
|
|
|
|
});
|
2023-05-29 11:20:08 +08:00
|
|
|
};
|