Skip to content

Commit

Permalink
Fix preload and createWindow
Browse files Browse the repository at this point in the history
  • Loading branch information
YeonV committed Dec 14, 2024
1 parent 7642251 commit 00f2749
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 26 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,5 @@ doctor-storybook.log
public/app
public/electron.js
public/preload.js
public/preload.cjs
public/renderer.js
18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"type": "module",
"dependencies": {
"@dnd-kit/core": "^6.2.0",
"@dnd-kit/modifiers": "^8.0.0",
"@dnd-kit/modifiers": "^9.0.0",
"@electron/remote": "^2.0.9",
"@emotion/react": "^11.13.5",
"@emotion/styled": "^11.13.5",
Expand All @@ -33,7 +33,7 @@
"@webcam/react": "^1.0.1",
"axios": "^1.7.8",
"base32-decode": "^1.0.0",
"base32-encode": "1.2.0",
"base32-encode": "2.0.0",
"chart.js": "4.4.7",
"color": "^4.2.3",
"compare-versions": "^6.1.1",
Expand Down Expand Up @@ -99,17 +99,17 @@
"build:default": "GENERATE_SOURCEMAP=false CI=false react-scripts build",
"prebuild": "node -e \"let pkg=require('./package.json'); pkg.homepage='/'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\"",
"postbuild": "run-script-os",
"postbuild:win32": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && del /q build\\app && del /q build\\preload.js && del /q build\\renderer.js && del /q build\\electron.js",
"postbuild:default": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && rm -rf build/app && rm -rf build/preload.js && rm -rf build/renderer.js && rm -rf build/electron.js",
"postbuild:win32": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && del /q build\\app && del /q build\\preload.cjs && del /q build\\renderer.js && del /q build\\electron.js",
"postbuild:default": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && rm -rf build/app && rm -rf build/preload.cjs && rm -rf build/renderer.js && rm -rf build/electron.js",
"buildhass": "GENERATE_SOURCEMAP=false CI=false react-scripts build",
"prebuildhass": "node -e \"let pkg=require('./package.json'); pkg.homepage='./'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\"",
"postbuildhass": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && rm -rf build/app && rm -rf build/preload.js && rm -rf build/renderer.js && rm -rf build/electron.js",
"postbuildhass": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && rm -rf build/app && rm -rf build/preload.cjs && rm -rf build/renderer.js && rm -rf build/electron.js",
"buildgh": "GENERATE_SOURCEMAP=false PUBLIC_URL=/LedFx-Frontend-v2/ CI=false react-scripts build",
"prebuildgh": "node -e \"let pkg=require('./package.json'); pkg.homepage='/LedFx-Frontend-v2/'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\"",
"postbuildgh": "rm -rf build/app && rm -rf build/preload.js && rm -rf build/renderer.js && rm -rf build/electron.js",
"postbuildgh": "rm -rf build/app && rm -rf build/preload.cjs && rm -rf build/renderer.js && rm -rf build/electron.js",
"buildledfx": "cross-env GENERATE_SOURCEMAP=false PUBLIC_URL=/ CI=false react-scripts build",
"prebuildledfx": "node -e \"let pkg=require('./package.json'); pkg.homepage='/'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\"",
"postbuildledfx": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && del /q /s \"build\\app\" && rmdir /q /s \"build\\app\" && del /q \"build\\preload.js\" && del /q \"build\\renderer.js\" && del /q \"build\\electron.js\"",
"postbuildledfx": "node -e \"let pkg=require('./package.json'); pkg.homepage='.'; require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2));\" && del /q /s \"build\\app\" && rmdir /q /s \"build\\app\" && del /q \"build\\preload.cjs\" && del /q \"build\\renderer.js\" && del /q \"build\\electron.js\"",
"test": "react-scripts test",
"eject": "react-scripts eject",
"predeploy": "yarn buildgh",
Expand All @@ -136,7 +136,7 @@
"dev": "concurrently \"cross-env BROWSER=none yarn start\" \"yarn electron\"",
"compile-electron": "run-script-os",
"compile-electron:win32": "copy app\\*.ts build\\*.js",
"compile-electron:default": "cp ./app/electron.ts ./build/electron.js && cp ./app/preload.ts ./build/preload.js && cp ./app/renderer.ts ./build/renderer.js && cp ./app/serviceWorker.ts ./build/serviceWorker.js",
"compile-electron:default": "cp ./app/electron.ts ./build/electron.js && cp ./app/preload.ts ./build/preload.cjs && cp ./app/renderer.ts ./build/renderer.js && cp ./app/serviceWorker.ts ./build/serviceWorker.js",
"electron": "wait-on http://127.0.0.1:3000 && concurrently \"npx tsc --project tsconfig.electron.json --watch\" \"wait-on public/electron.js && electron .\"",
"postinstall": "electron-builder install-app-deps",
"prebuild-storybook": "run-script-os",
Expand Down Expand Up @@ -218,7 +218,7 @@
"eslint-plugin-storybook": "^0.11.1",
"gh-pages": "^6.1.1",
"prettier": "^3.4.1",
"react-is": "^18.2.0",
"react-is": "^19.0.0",
"run-script-os": "^1.1.6",
"storybook": "8.4.7",
"wait-on": "^8.0.0",
Expand Down
1 change: 1 addition & 0 deletions src/app/app/handlers.mts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export const handlers = async (
handleVerifyOTP(wind, parameters)
break
case 'generate-mfa-qr':
console.log('Generate MFA QR')
generateMfaQr(wind)
break
case 'get-platform':
Expand Down
4 changes: 2 additions & 2 deletions src/app/app/utils/win.mts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ function createWindow(win?: any, args = {}) {
nodeIntegration: true,
contextIsolation: true,
preload: isDev
? path.join(__dirname, '../preload.js')
: path.join(__dirname, '../../preload.js'),
? path.join(__dirname, '../../preload.cjs')
: path.join(__dirname, '../../preload.cjs'),
...args
}
})
Expand Down
12 changes: 6 additions & 6 deletions src/app/electron.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ const ready = () =>
: createWindow(win)

const remoteMain = await import('@electron/remote/main/index.js')
if (!wind) return
remoteMain.enable(wind.webContents)

wind && remoteMain.enable(wind.webContents)

wind.webContents.setWindowOpenHandler(({ url }) => {
wind && wind.webContents.setWindowOpenHandler(({ url }) => {
if (url.includes(' https://accounts.spotify.com/authorize')
// || url.includes(`${backendUrl}/connect/github?callback`)
) {
Expand All @@ -57,15 +57,15 @@ const ready = () =>
return { action: 'allow' }
})

if (isCC) startInstance(wind, 'instance1', subprocesses)
if (isCC && wind) startInstance(wind, 'instance1', subprocesses)


createTray(isCC, wind, thePath, __dirname)
wind && createTray(isCC, wind, thePath, __dirname)

ipcMain.on('toMain', async (event, parameters) =>
wind && handlers(wind, subprocesses, event, parameters)
)
wind.on('close', () => {
wind && wind.on('close', () => {
wind && closeAllSubs(wind, subpy, subprocesses)
wind = null;
})
Expand Down
17 changes: 9 additions & 8 deletions src/app/preload.ts → src/app/preload.cts
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
import { contextBridge, ipcRenderer } from 'electron'
/* eslint-disable @typescript-eslint/no-require-imports */
/* eslint-disable @typescript-eslint/no-explicit-any */
const { contextBridge, ipcRenderer } = require('electron')

contextBridge.exposeInMainWorld('api', {
send: (channel: string, data: any) => {
// Whitelist channels
const validChannels = ['toMain'];
const validChannels = ['toMain']
if (validChannels.includes(channel)) {
ipcRenderer.send(channel, data);
ipcRenderer.send(channel, data)
}
},
receive: (channel: string, func: any) => {
const validChannels = ['fromMain'];
const validChannels = ['fromMain']
if (validChannels.includes(channel)) {
// Deliberately strip event as it includes `sender`
ipcRenderer.on(channel, (event, ...args) => func(...args));
ipcRenderer.on(channel, (event, ...args) => func(...args))
}
},
yz: true,
});

yz: true
})
2 changes: 1 addition & 1 deletion src/app/renderer.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// No Node.js APIs are available in this process because
// `nodeIntegration` is turned off. Use `preload.js` to
// `nodeIntegration` is turned off. Use `preload.cjs` to
// selectively enable features needed in the rendering
// process.

0 comments on commit 00f2749

Please sign in to comment.