2023-01-28 00:41:44 +08:00
|
|
|
import {layoutToJSON} from "../layout/util";
|
|
|
|
|
/// #if !BROWSER
|
2023-02-06 21:50:28 +08:00
|
|
|
import {ipcRenderer} from "electron";
|
2023-01-28 00:41:44 +08:00
|
|
|
/// #endif
|
|
|
|
|
import {Constants} from "../constants";
|
|
|
|
|
import {Tab} from "../layout/Tab";
|
2023-02-06 21:50:28 +08:00
|
|
|
import {fetchPost} from "../util/fetch";
|
2023-02-07 11:58:24 +08:00
|
|
|
import {lockFile} from "../dialog/processSystem";
|
|
|
|
|
import {showMessage} from "../dialog/message";
|
2023-01-28 00:41:44 +08:00
|
|
|
|
|
|
|
|
export const openNewWindow = (tab: Tab) => {
|
|
|
|
|
const json = {};
|
|
|
|
|
layoutToJSON(tab, json);
|
2023-01-31 21:10:37 +08:00
|
|
|
/// #if !BROWSER
|
2023-01-28 13:59:36 +08:00
|
|
|
ipcRenderer.send(Constants.SIYUAN_OPENWINDOW, `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${JSON.stringify(json)}`);
|
2023-01-31 21:10:37 +08:00
|
|
|
/// #endif
|
2023-01-28 00:41:44 +08:00
|
|
|
tab.parent.removeTab(tab.id);
|
2023-01-28 00:45:18 +08:00
|
|
|
};
|
2023-02-06 21:50:28 +08:00
|
|
|
|
|
|
|
|
export const openNewWindowById = (id: string) => {
|
|
|
|
|
fetchPost("api/block/getBlockInfo", {id}, (response) => {
|
2023-02-07 11:58:24 +08:00
|
|
|
if (response.code === 2) {
|
|
|
|
|
// 文件被锁定
|
|
|
|
|
lockFile(response.data);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (response.code === 3) {
|
|
|
|
|
showMessage(response.msg);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2023-02-06 21:50:28 +08:00
|
|
|
const json: any = {
|
|
|
|
|
title: response.data.rootTitle,
|
|
|
|
|
docIcon: response.data.rootIcon,
|
|
|
|
|
pin: false,
|
|
|
|
|
active: true,
|
|
|
|
|
instance: "Tab",
|
|
|
|
|
action: "Tab",
|
|
|
|
|
children: {
|
|
|
|
|
notebookId: response.data.box,
|
|
|
|
|
blockId: id,
|
|
|
|
|
rootId: response.data.rootID,
|
|
|
|
|
mode: "wysiwyg",
|
|
|
|
|
instance: "Editor",
|
|
|
|
|
}
|
2023-02-06 21:54:26 +08:00
|
|
|
};
|
2023-02-06 21:50:28 +08:00
|
|
|
if (response.data.rootID === id) {
|
|
|
|
|
fetchPost("/api/attr/getBlockAttrs", {id}, (attrResponse) => {
|
|
|
|
|
json.children.scrollAttr = JSON.parse(attrResponse.data.scroll || "{}");
|
|
|
|
|
/// #if !BROWSER
|
|
|
|
|
ipcRenderer.send(Constants.SIYUAN_OPENWINDOW, `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${JSON.stringify(json)}`);
|
|
|
|
|
/// #endif
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
json.children.action = Constants.CB_GET_ALL;
|
|
|
|
|
json.children.scrollAttr = {
|
|
|
|
|
startId: id,
|
|
|
|
|
endId: id,
|
|
|
|
|
scrollTop: 0,
|
|
|
|
|
focusId: id,
|
|
|
|
|
focusStart: 0,
|
|
|
|
|
focusEnd: 0
|
2023-02-06 21:54:26 +08:00
|
|
|
};
|
2023-02-06 21:50:28 +08:00
|
|
|
/// #if !BROWSER
|
|
|
|
|
ipcRenderer.send(Constants.SIYUAN_OPENWINDOW, `${window.location.protocol}//${window.location.host}/stage/build/app/window.html?v=${Constants.SIYUAN_VERSION}&json=${JSON.stringify(json)}`);
|
|
|
|
|
/// #endif
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
};
|