From ef120cb9278f541cbd3636f19a5e7f468cd1d7a7 Mon Sep 17 00:00:00 2001 From: Omid Azad Date: Tue, 28 May 2024 01:07:07 +0330 Subject: [PATCH] add funtctions and listeners to start.js and EntrySection.js to test autoUpdater of electron-updater. till now I was'nt successful --- package-lock.json | 66 ++++++++++++++++++++++++++++++++++++--- package.json | 20 ++++++++++-- src/App.js | 7 +++-- src/pages/EntrySection.js | 22 +++++++++++-- src/start.js | 19 +++++++++-- 5 files changed, 122 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1e403b8..2515872 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "frontend", - "version": "0.1.0", + "version": "2.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "frontend", - "version": "0.1.0", + "version": "2.0.1", "hasInstallScript": true, "dependencies": { "@emotion/react": "^11.11.4", @@ -18,6 +18,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "electron-updater": "^6.1.8", "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.29.1", @@ -9263,6 +9264,49 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.752.tgz", "integrity": "sha512-P3QJreYI/AUTcfBVrC4zy9KvnZWekViThgQMX/VpJ+IsOBbcX5JFpORM4qWapwWQ+agb2nYAOyn/4PMXOk0m2Q==" }, + "node_modules/electron-updater": { + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.8.tgz", + "integrity": "sha512-hhOTfaFAd6wRHAfUaBhnAOYc+ymSGCWJLtFkw4xJqOvtpHmIdNHnXDV9m1MHC+A6q08Abx4Ykgyz/R5DGKNAMQ==", + "dependencies": { + "builder-util-runtime": "9.2.3", + "fs-extra": "^10.1.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.8", + "tiny-typed-emitter": "^2.1.0" + } + }, + "node_modules/electron-updater/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/electron-updater/node_modules/builder-util-runtime": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.3.tgz", + "integrity": "sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw==", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/electron-updater/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/emittery": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", @@ -15040,8 +15084,7 @@ "node_modules/lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", - "dev": true + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" }, "node_modules/lazystream": { "version": "1.0.1", @@ -15190,6 +15233,11 @@ "dev": true, "peer": true }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", @@ -15197,6 +15245,11 @@ "dev": true, "peer": true }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -20357,6 +20410,11 @@ "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", diff --git a/package.json b/package.json index 417b6cb..e5d2075 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "electron-updater": "^6.1.8", "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.29.1", @@ -73,15 +74,30 @@ "electron-builder": "^24.13.3", "electron-is-dev": "^3.0.1" }, - "files": ["build", "*.js", "node_modules", "package.json","index.html", "package-lock.json"], + "files": [ + "build", + "*.js", + "node_modules", + "package.json", + "index.html", + "package-lock.json" + ], "build": { "appId": "SSP Price Checker", + "productName": "SSP Price Checker", "extends": null, + "publish": [ + { + "provider": "github", + "owner": "devomid", + "repo": "SSP-Price-Checker" + } + ], "win": { "target": [ "nsis" ], - "icon":"./src/assets/icon/icon.ico" + "icon": "./src/assets/icon/icon.ico" }, "directories": { "buildResources": "resources", diff --git a/src/App.js b/src/App.js index 3a92147..f2e8ace 100644 --- a/src/App.js +++ b/src/App.js @@ -19,9 +19,10 @@ const cacheRtl = createCache({ }); - function App() { + + return ( @@ -54,4 +55,6 @@ function App() { ) } -export default App; \ No newline at end of file +export default App; + + diff --git a/src/pages/EntrySection.js b/src/pages/EntrySection.js index bafd163..6fc21f9 100644 --- a/src/pages/EntrySection.js +++ b/src/pages/EntrySection.js @@ -11,6 +11,8 @@ import 'jalaali-react-date-picker/lib/styles/index.css'; import moment from 'moment-jalaali'; import 'moment/locale/fa'; import 'moment-jalaali'; +const { ipcRenderer } = window.require('electron'); + const EntrySection = () => { @@ -317,7 +319,7 @@ const EntrySection = () => { const claculateKarbarEzafe = () => { if (destCode) { - if (tamdidPrice){ + if (tamdidPrice) { if (karbarEzafe == 0 || appCodes.hasOwnProperty(destCode)) { const karbarEzafeValue = (Number(tamdidPrice) / 10) * (Number(karbarEzafe)) setKarbarEzafePrice(karbarEzafeValue) @@ -328,7 +330,7 @@ const EntrySection = () => { } else { if (karbarEzafe == 0 || appCodes.hasOwnProperty(destCode)) { - + if (networkCodes.includes(destCode) || karbarEzafe == 0) { const karbarEzafeValue = Number(((appPrices[destCode]) / 10) * karbarEzafe) setKarbarEzafePrice(karbarEzafeValue) @@ -710,6 +712,22 @@ const EntrySection = () => { reset() }, [resetState]); + useEffect(() => { + + ipcRenderer.on('update-available', () => { + console.log('update available'); + }); + + ipcRenderer.on('download-progress', (event, progressObj) => { + console.log(event); + console.log(progressObj); + }); + + ipcRenderer.on('update-downloaded', () => { + console.log('download finished'); + }); + }, []) + return ( diff --git a/src/start.js b/src/start.js index 3873877..606daa7 100644 --- a/src/start.js +++ b/src/start.js @@ -1,4 +1,4 @@ -const { app, BrowserWindow } = require('electron') +const { app, BrowserWindow, autoUpdater } = require('electron') const { ipcMain } = require('electron') const { protocol } = require('electron'); @@ -24,7 +24,9 @@ function createWindow() { resizable: false }); - mainWindow.setMenuBarVisibility(false) + mainWindow.setMenuBarVisibility(false) + + mainWindow.webContents.openDevTools() mainWindow.loadURL( process.env.ELECTRON_START_URL || @@ -43,6 +45,19 @@ function createWindow() { app.on('ready', createWindow) +autoUpdater.on('update-available', () => { + mainWindow.webContents.send('update-available'); +}); + +autoUpdater.on('download-progress', (progressObj) => { + mainWindow.webContents.send('download-progress', progressObj); +}); + +autoUpdater.on('update-downloaded', () => { + mainWindow.webContents.send('update-downloaded'); + autoUpdater.quitAndInstall() +}); + ipcMain.on('bye', () => { app.quit() })