Mentions légales du service

Skip to content
Snippets Groups Projects
Commit c81bb356 authored by VIAUD Nathan's avatar VIAUD Nathan
Browse files

improvements: saving content.json & project.json before save, preview & export

parent 3a610275
No related branches found
No related tags found
1 merge request!110Resolve "Trigger the writing of content.json & project.json before save, exporting & launching preview"
Pipeline #917090 passed
......@@ -69,17 +69,27 @@ const setupIpcListener = function (targetWindow) {
store.updateState('projects', { [targetWindow.id]: project });
});
ipcMain.on('saveEpocProject', async (event) => {
ipcMain.on('saveEpocProject', async (event, data) => {
if (event.sender !== targetWindow.webContents) return;
sendToFrontend(event.sender, 'epocProjectSaving');
const { data: projectData, content } = data;
await writeProjectData(store.state.projects[targetWindow.id].workdir, projectData);
await writeEpocData(store.state.projects[targetWindow.id].workdir, content);
updateSavedProject(event.sender, await saveEpocProject(store.state.projects[targetWindow.id]));
});
ipcMain.on('runPreview', async (event, contentPath) => {
ipcMain.on('runPreview', async (event, data) => {
if (event.sender !== targetWindow.webContents) return;
try {
const { contentPath, projectJSON } = data;
const { data: projectData, content } = projectJSON;
await writeProjectData(store.state.projects[targetWindow.id].workdir, projectData);
await writeEpocData(store.state.projects[targetWindow.id].workdir, content);
await runPreview(store.state.projects[targetWindow.id].workdir, contentPath);
sendToFrontend(event.sender, 'previewReady');
} catch (e) {
......@@ -88,10 +98,14 @@ const setupIpcListener = function (targetWindow) {
}
});
ipcMain.on('exportProject', async (event) => {
ipcMain.on('exportProject', async (event, data) => {
if (event.sender !== targetWindow.webContents) return;
try {
const { data: projectData, content } = data;
await writeProjectData(store.state.projects[targetWindow.id].workdir, projectData);
await writeEpocData(store.state.projects[targetWindow.id].workdir, content);
await exportProject(
store.state.projects[targetWindow.id].workdir,
store.state.projects[targetWindow.id].filepath
......
......@@ -176,13 +176,15 @@ function openEpocProject(project: ePocProject): void {
function saveEpocProject(): void {
editorStore.saving = true;
api.send('saveEpocProject');
const data = graphService.getProjectJSON();
api.send('saveEpocProject', data);
}
function runPreview(): void {
waitingToast('🔭 Démarrage de la prévisualisation...');
editorStore.loadingPreview = true;
api.send('runPreview');
const data = graphService.getProjectJSON();
api.send('runPreview', { data });
}
function runPreviewAtPage(): void {
......@@ -214,14 +216,16 @@ function runPreviewAtPage(): void {
if (!error) {
editorStore.loadingPreview = true;
api.send('runPreview', contentPath);
const projectJSON= graphService.getProjectJSON();
api.send('runPreview', { contentPath, projectJSON });
}
}
function exportProject(): void {
waitingToast('⚙️ Export en cours...');
editorStore.exporting = true;
api.send('exportProject');
const data = graphService.getProjectJSON();
api.send('exportProject', data);
}
export const editorService = {
......
......@@ -31,13 +31,18 @@ const { nodes, edges, findNode, toObject } = useVueFlow({ id: 'main' });
function writeProjectData(): void {
debounceFunction(500, () => {
const data = JSON.stringify(toObject());
const content = JSON.stringify(createContentJSON());
const { data, content } = getProjectJSON();
api.send('writeProjectData', data);
api.send('writeEpocData', content);
});
}
function getProjectJSON(): { data: string; content: string } {
const data = JSON.stringify(toObject());
const content = JSON.stringify(createContentJSON());
return { data, content };
}
function importFile(filepath: string, targetDirectory?: string): Promise<string> {
api.send('importFile', { filepath, targetDirectory });
......@@ -279,6 +284,7 @@ export const graphService = {
getPreviousNode,
getNextNode,
openContextMenu,
getProjectJSON
};
let openedConditionIndex: number | null = null;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment