From 21b4a2cea1b17a2242786cd4736c0a95f746a63d Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Tue, 8 Jun 2021 20:13:39 +0200 Subject: [PATCH] Feta: nav et content --- src/App.vue | 21 +++------ src/background.js | 81 +++++++++++++++++++++++++++++++++++ src/components/HelloWorld.vue | 58 ------------------------- src/components/content.vue | 21 +++++++++ src/components/nav.vue | 23 ++++++++++ 5 files changed, 132 insertions(+), 72 deletions(-) create mode 100644 src/background.js delete mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/content.vue create mode 100644 src/components/nav.vue diff --git a/src/App.vue b/src/App.vue index 591a031..2a9306a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,26 +1,19 @@ - + diff --git a/src/background.js b/src/background.js new file mode 100644 index 0000000..ae32413 --- /dev/null +++ b/src/background.js @@ -0,0 +1,81 @@ +'use strict' + +import { app, protocol, BrowserWindow } from 'electron' +import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' +import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer' +const isDevelopment = process.env.NODE_ENV !== 'production' + +// Scheme must be registered before the app is ready +protocol.registerSchemesAsPrivileged([ + { scheme: 'app', privileges: { secure: true, standard: true } } +]) + +async function createWindow() { + // Create the browser window. + const win = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + + // Use pluginOptions.nodeIntegration, leave this alone + // See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info + nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION, + contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION + } + }) + + if (process.env.WEBPACK_DEV_SERVER_URL) { + // Load the url of the dev server if in development mode + await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL) + if (!process.env.IS_TEST) win.webContents.openDevTools() + } else { + createProtocol('app') + // Load the index.html when not in development + win.loadURL('app://./index.html') + } +} + +// Quit when all windows are closed. +app.on('window-all-closed', () => { + // On macOS it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + app.quit() + } +}) + +app.on('activate', () => { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) createWindow() +}) + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.on('ready', async () => { + if (isDevelopment && !process.env.IS_TEST) { + // Install Vue Devtools + try { + await installExtension(VUEJS_DEVTOOLS) + } catch (e) { + console.error('Vue Devtools failed to install:', e.toString()) + } + } + createWindow() +}) + +// Exit cleanly on request from parent process in development mode. +if (isDevelopment) { + if (process.platform === 'win32') { + process.on('message', (data) => { + if (data === 'graceful-exit') { + app.quit() + } + }) + } else { + process.on('SIGTERM', () => { + app.quit() + }) + } +} diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index 879051a..0000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - diff --git a/src/components/content.vue b/src/components/content.vue new file mode 100644 index 0000000..c85ddb1 --- /dev/null +++ b/src/components/content.vue @@ -0,0 +1,21 @@ + + + + + + diff --git a/src/components/nav.vue b/src/components/nav.vue new file mode 100644 index 0000000..feee502 --- /dev/null +++ b/src/components/nav.vue @@ -0,0 +1,23 @@ + + + + + +