From 78a0402983180dc8b5e1743bba5028b73510732c Mon Sep 17 00:00:00 2001 From: luwol03 Date: Thu, 12 May 2022 19:48:03 +0200 Subject: [PATCH 1/3] Added basic touchbar main process integration --- src/electron/ipc/index.js | 1 + src/electron/ipc/touchbar.js | 40 ++++++++++++++++++++++++++++++++++++ src/utils/utils.js | 7 +++++++ 3 files changed, 48 insertions(+) create mode 100644 src/electron/ipc/touchbar.js diff --git a/src/electron/ipc/index.js b/src/electron/ipc/index.js index 8539ebc..b3f5ae3 100644 --- a/src/electron/ipc/index.js +++ b/src/electron/ipc/index.js @@ -2,6 +2,7 @@ const handlerFiles = [ "./about.js", "./clipboard.js", "./fileOperations.js", + "./touchbar.js", "./updater.js", ]; diff --git a/src/electron/ipc/touchbar.js b/src/electron/ipc/touchbar.js new file mode 100644 index 0000000..4af09c5 --- /dev/null +++ b/src/electron/ipc/touchbar.js @@ -0,0 +1,40 @@ +const { TouchBar, ipcMain } = require("electron"); +const { getBrowserWindowFromEvent } = require("../../utils/utils"); +const { TouchBarButton } = TouchBar; + +const isTouchbarAvailable = () => process.platform === "darwin"; + +const registerIpcHandlers = () => { + ipcMain.handle("touchbar:select", (e, { options }) => { + if (!isTouchbarAvailable()) return ["NOT_SUPPORTED"]; + + return new Promise((res) => { + const buttons = options.map( + (option) => + new TouchBarButton({ + label: option.label, + accessibilityLabel: option.accessibilityLabel, + backgroundColor: option.backgroundColor, + click: () => res([null, option]), + }) + ); + + const touchBar = new TouchBar({ + items: buttons, + }); + + const win = getBrowserWindowFromEvent(e); + win.setTouchBar(touchBar); + }); + }); + + ipcMain.handle("touchbar:reset", (e) => { + if (!isTouchbarAvailable()) return ["NOT_SUPPORTED"]; + + const win = getBrowserWindowFromEvent(e); + win.setTouchBar(null); + return [null]; + }); +}; + +module.exports = registerIpcHandlers; diff --git a/src/utils/utils.js b/src/utils/utils.js index ca9d796..aceb4c6 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -1,3 +1,5 @@ +const { BrowserWindow } = require("electron"); + /** * Calculate day difference between two dates * See: https://www.geeksforgeeks.org/how-to-calculate-the-number-of-days-between-two-dates-in-javascript/ @@ -11,6 +13,11 @@ const dayDateDiff = (date1, date2) => { return Math.floor(timeDiff / (1000 * 60 * 60 * 24)); }; +const getBrowserWindowFromEvent = (e) => { + return BrowserWindow.fromId(e.sender.id); +}; + module.exports = { dayDateDiff, + getBrowserWindowFromEvent, }; From 4b1b7564a39b93c4fd3b5f6fe63cff088edd889a Mon Sep 17 00:00:00 2001 From: luwol03 Date: Fri, 13 May 2022 20:49:50 +0200 Subject: [PATCH 2/3] Use react libary for touchbar creation --- package-lock.json | 128 +++++++++++++++++++++++++-- package.json | 1 + src/electron/ipc/touchbar.js | 39 +------- src/electron/windows/main/preload.js | 26 +++++- src/utils/utils.js | 7 -- 5 files changed, 148 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 544226e..d139de1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,12 @@ { "name": "vocascan-desktop", - "version": "1.1.0", + "version": "1.2.1-rc.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.1.0", + "name": "vocascan-desktop", + "version": "1.2.1-rc.1", "dependencies": { "concurrently": "^6.0.0", "cross-env": "^7.0.3", @@ -14,6 +15,7 @@ "electron-updater": "^4.3.8", "i18next": "^21.3.3", "i18next-node-fs-backend": "^2.1.3", + "react-touchbar-electron": "^1.0.1", "semver": "^6.3.0", "wait-on": "^5.2.1" }, @@ -3031,8 +3033,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -3180,6 +3181,17 @@ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -3340,6 +3352,14 @@ "node": ">=4" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -3592,6 +3612,44 @@ "node": ">=0.10.0" } }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-touchbar-electron": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-touchbar-electron/-/react-touchbar-electron-1.0.1.tgz", + "integrity": "sha512-vDxYxz6atqQzdxcSi4W4oAVlLjYrjgssQbN6ZcDD6xoLdlp1TbcxANHqeVO93mKcFpm5sB05cdJumRsmq7XS2g==", + "dependencies": { + "react": "^17.0.1", + "react-dom": "^17.0.1" + }, + "peerDependencies": { + "react": "^17.0.1", + "react-dom": "^17.0.1" + } + }, "node_modules/read-config-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", @@ -3789,6 +3847,15 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -6881,8 +6948,7 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "4.1.0", @@ -7015,6 +7081,14 @@ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -7133,6 +7207,11 @@ "pify": "^3.0.0" } }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -7329,6 +7408,34 @@ } } }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-touchbar-electron": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-touchbar-electron/-/react-touchbar-electron-1.0.1.tgz", + "integrity": "sha512-vDxYxz6atqQzdxcSi4W4oAVlLjYrjgssQbN6ZcDD6xoLdlp1TbcxANHqeVO93mKcFpm5sB05cdJumRsmq7XS2g==", + "requires": { + "react": "^17.0.1", + "react-dom": "^17.0.1" + } + }, "read-config-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", @@ -7488,6 +7595,15 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", diff --git a/package.json b/package.json index 40c12d3..e5f4934 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "electron-updater": "^4.3.8", "i18next": "^21.3.3", "i18next-node-fs-backend": "^2.1.3", + "react-touchbar-electron": "^1.0.1", "semver": "^6.3.0", "wait-on": "^5.2.1" }, diff --git a/src/electron/ipc/touchbar.js b/src/electron/ipc/touchbar.js index 4af09c5..1cf5798 100644 --- a/src/electron/ipc/touchbar.js +++ b/src/electron/ipc/touchbar.js @@ -1,40 +1,7 @@ -const { TouchBar, ipcMain } = require("electron"); -const { getBrowserWindowFromEvent } = require("../../utils/utils"); -const { TouchBarButton } = TouchBar; +const { decorateWindow } = require("react-touchbar-electron/decorate-window"); -const isTouchbarAvailable = () => process.platform === "darwin"; - -const registerIpcHandlers = () => { - ipcMain.handle("touchbar:select", (e, { options }) => { - if (!isTouchbarAvailable()) return ["NOT_SUPPORTED"]; - - return new Promise((res) => { - const buttons = options.map( - (option) => - new TouchBarButton({ - label: option.label, - accessibilityLabel: option.accessibilityLabel, - backgroundColor: option.backgroundColor, - click: () => res([null, option]), - }) - ); - - const touchBar = new TouchBar({ - items: buttons, - }); - - const win = getBrowserWindowFromEvent(e); - win.setTouchBar(touchBar); - }); - }); - - ipcMain.handle("touchbar:reset", (e) => { - if (!isTouchbarAvailable()) return ["NOT_SUPPORTED"]; - - const win = getBrowserWindowFromEvent(e); - win.setTouchBar(null); - return [null]; - }); +const registerIpcHandlers = ({ windows }) => { + decorateWindow(windows.main); }; module.exports = registerIpcHandlers; diff --git a/src/electron/windows/main/preload.js b/src/electron/windows/main/preload.js index 032d462..214ac32 100644 --- a/src/electron/windows/main/preload.js +++ b/src/electron/windows/main/preload.js @@ -1,7 +1,25 @@ const { ipcRenderer, contextBridge } = require("electron"); -contextBridge.exposeInMainWorld("electron", { - ...ipcRenderer, - on: ipcRenderer.on, - removeListener: ipcRenderer.removeListener, +const electron = { + ipcRenderer: { + send: (channel, ...args) => ipcRenderer.send(channel, ...args), + invoke: (channel, ...args) => ipcRenderer.invoke(channel, ...args), + on(channel, listener) { + ipcRenderer.on(channel, listener); + return this; + }, + removeListener(channel, listener) { + ipcRenderer.removeListener(channel, listener); + return this; + }, + }, +}; + +contextBridge.exposeInMainWorld("electron", electron); + +// used for react-touchbar-electron +contextBridge.exposeInMainWorld("require", (name) => { + if (name === "electron") { + return electron; + } }); diff --git a/src/utils/utils.js b/src/utils/utils.js index aceb4c6..ca9d796 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -1,5 +1,3 @@ -const { BrowserWindow } = require("electron"); - /** * Calculate day difference between two dates * See: https://www.geeksforgeeks.org/how-to-calculate-the-number-of-days-between-two-dates-in-javascript/ @@ -13,11 +11,6 @@ const dayDateDiff = (date1, date2) => { return Math.floor(timeDiff / (1000 * 60 * 60 * 24)); }; -const getBrowserWindowFromEvent = (e) => { - return BrowserWindow.fromId(e.sender.id); -}; - module.exports = { dayDateDiff, - getBrowserWindowFromEvent, }; From 645b5f4e695868e9427d403d3cf6ad79459cd346 Mon Sep 17 00:00:00 2001 From: luwol03 Date: Sun, 5 Jun 2022 13:26:30 +0200 Subject: [PATCH 3/3] updated to use my react-touchbar-electron fork --- package-lock.json | 50 ++++++++++++++-------------- package.json | 2 +- src/electron/ipc/touchbar.js | 4 ++- src/electron/windows/main/preload.js | 8 ++--- 4 files changed, 31 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index d139de1..e5a8975 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "vocascan-desktop", "version": "1.2.1-rc.1", "dependencies": { + "@luwol03/react-touchbar-electron": "^1.2.0", "concurrently": "^6.0.0", "cross-env": "^7.0.3", "electron-is-dev": "^2.0.0", @@ -15,7 +16,6 @@ "electron-updater": "^4.3.8", "i18next": "^21.3.3", "i18next-node-fs-backend": "^2.1.3", - "react-touchbar-electron": "^1.0.1", "semver": "^6.3.0", "wait-on": "^5.2.1" }, @@ -315,6 +315,19 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@luwol03/react-touchbar-electron": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@luwol03/react-touchbar-electron/-/react-touchbar-electron-1.2.0.tgz", + "integrity": "sha512-Y73Sq8hxoFJP0YQzA20Tr8+5NWapE2L7SxlK5XG6v8j3gackwIs2P56fZM5UXBk9pFfm7rzm8rNseeN2xjTwhQ==", + "dependencies": { + "react": "^17.0.1", + "react-dom": "^17.0.1" + }, + "peerDependencies": { + "react": "^17.0.1", + "react-dom": "^17.0.1" + } + }, "node_modules/@malept/cross-spawn-promise": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", @@ -3355,7 +3368,7 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } @@ -3637,19 +3650,6 @@ "react": "17.0.2" } }, - "node_modules/react-touchbar-electron": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-touchbar-electron/-/react-touchbar-electron-1.0.1.tgz", - "integrity": "sha512-vDxYxz6atqQzdxcSi4W4oAVlLjYrjgssQbN6ZcDD6xoLdlp1TbcxANHqeVO93mKcFpm5sB05cdJumRsmq7XS2g==", - "dependencies": { - "react": "^17.0.1", - "react-dom": "^17.0.1" - }, - "peerDependencies": { - "react": "^17.0.1", - "react-dom": "^17.0.1" - } - }, "node_modules/read-config-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", @@ -4843,6 +4843,15 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@luwol03/react-touchbar-electron": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@luwol03/react-touchbar-electron/-/react-touchbar-electron-1.2.0.tgz", + "integrity": "sha512-Y73Sq8hxoFJP0YQzA20Tr8+5NWapE2L7SxlK5XG6v8j3gackwIs2P56fZM5UXBk9pFfm7rzm8rNseeN2xjTwhQ==", + "requires": { + "react": "^17.0.1", + "react-dom": "^17.0.1" + } + }, "@malept/cross-spawn-promise": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", @@ -7210,7 +7219,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-keys": { "version": "1.1.1", @@ -7427,15 +7436,6 @@ "scheduler": "^0.20.2" } }, - "react-touchbar-electron": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-touchbar-electron/-/react-touchbar-electron-1.0.1.tgz", - "integrity": "sha512-vDxYxz6atqQzdxcSi4W4oAVlLjYrjgssQbN6ZcDD6xoLdlp1TbcxANHqeVO93mKcFpm5sB05cdJumRsmq7XS2g==", - "requires": { - "react": "^17.0.1", - "react-dom": "^17.0.1" - } - }, "read-config-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", diff --git a/package.json b/package.json index e5f4934..f37b8cc 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "lint:react": "npm run --prefix src/vocascan-frontend lint" }, "dependencies": { + "@luwol03/react-touchbar-electron": "^1.2.0", "concurrently": "^6.0.0", "cross-env": "^7.0.3", "electron-is-dev": "^2.0.0", @@ -29,7 +30,6 @@ "electron-updater": "^4.3.8", "i18next": "^21.3.3", "i18next-node-fs-backend": "^2.1.3", - "react-touchbar-electron": "^1.0.1", "semver": "^6.3.0", "wait-on": "^5.2.1" }, diff --git a/src/electron/ipc/touchbar.js b/src/electron/ipc/touchbar.js index 1cf5798..d6d5471 100644 --- a/src/electron/ipc/touchbar.js +++ b/src/electron/ipc/touchbar.js @@ -1,4 +1,6 @@ -const { decorateWindow } = require("react-touchbar-electron/decorate-window"); +const { + decorateWindow, +} = require("@luwol03/react-touchbar-electron/decorate-window"); const registerIpcHandlers = ({ windows }) => { decorateWindow(windows.main); diff --git a/src/electron/windows/main/preload.js b/src/electron/windows/main/preload.js index 214ac32..bb885a3 100644 --- a/src/electron/windows/main/preload.js +++ b/src/electron/windows/main/preload.js @@ -1,4 +1,5 @@ const { ipcRenderer, contextBridge } = require("electron"); +const { preload } = require("@luwol03/react-touchbar-electron/preload"); const electron = { ipcRenderer: { @@ -17,9 +18,4 @@ const electron = { contextBridge.exposeInMainWorld("electron", electron); -// used for react-touchbar-electron -contextBridge.exposeInMainWorld("require", (name) => { - if (name === "electron") { - return electron; - } -}); +preload();