diff --git a/packages/main/src/mainWindow.ts b/packages/main/src/mainWindow.ts index 41d6f817107..47d2fe071fd 100644 --- a/packages/main/src/mainWindow.ts +++ b/packages/main/src/mainWindow.ts @@ -16,8 +16,8 @@ * SPDX-License-Identifier: Apache-2.0 ***********************************************************************/ -import type { BrowserWindowConstructorOptions, FileFilter } from 'electron'; -import { autoUpdater, Menu, BrowserWindow, ipcMain, app, dialog, screen, nativeTheme } from 'electron'; +import type { BrowserWindowConstructorOptions } from 'electron'; +import { autoUpdater, Menu, BrowserWindow, ipcMain, app, screen, nativeTheme } from 'electron'; import contextMenu from 'electron-context-menu'; import { aboutMenuItem } from 'electron-util'; import { join } from 'path'; @@ -98,55 +98,6 @@ async function createWindow(): Promise { } }); - // select a file using native widget - ipcMain.on('dialog:openFile', (_, param: { dialogId: string; message: string; filter: FileFilter }) => { - dialog - .showOpenDialog(browserWindow, { - properties: ['openFile'], - filters: [param.filter], - message: param.message, - }) - .then(response => { - // send the response back - browserWindow.webContents.send('dialog:open-file-or-folder-response', param.dialogId, response); - }) - .catch((err: unknown) => { - console.error('Error opening file', err); - }); - }); - - // select a folder using native widget - ipcMain.on('dialog:openFolder', (_, param: { dialogId: string; message: string }) => { - dialog - .showOpenDialog(browserWindow, { - properties: ['openDirectory'], - message: param.message, - }) - .then(response => { - // send the response back - browserWindow.webContents.send('dialog:open-file-or-folder-response', param.dialogId, response); - }) - .catch((err: unknown) => { - console.error('Error opening folder', err); - }); - }); - - ipcMain.on('dialog:saveFile', (_, param: { dialogId: string; message: string; defaultPath: string }) => { - dialog - .showSaveDialog(browserWindow, { - title: param.message, - defaultPath: param.defaultPath, - }) - .then(response => { - if (!response.canceled && response.filePath) { - browserWindow.webContents.send('dialog:open-file-or-folder-response', param.dialogId, response); - } - }) - .catch((err: unknown) => { - console.error('Error saving file', err); - }); - }); - let configurationRegistry: ConfigurationRegistry; ipcMain.on('configuration-registry', (_, data) => { configurationRegistry = data; diff --git a/packages/preload/src/index.ts b/packages/preload/src/index.ts index dd39378f1ae..df2198601f8 100644 --- a/packages/preload/src/index.ts +++ b/packages/preload/src/index.ts @@ -1290,23 +1290,6 @@ export function initExposure(): void { apiSender.send('dev-tools:open-webview', webviewId); }); - // Handle callback on dialog file/folder by calling the callback once we get the answer - ipcRenderer.on( - 'dialog:open-file-or-folder-response', - (_, dialogId: string, openDialogReturnValue: Electron.OpenDialogReturnValue) => { - // grab from stored map - const callback = dialogResponses.get(dialogId); - if (callback) { - callback(openDialogReturnValue); - - // remove callback - dialogResponses.delete(dialogId); - } else { - console.error('Got response for an unknown dialog id', dialogId); - } - }, - ); - // Handle callback on dialogs by calling the callback once we get the answer ipcRenderer.on('dialog:open-save-dialog-response', (_, dialogId: string, result: string | string[] | undefined) => { // grab from stored map @@ -1371,84 +1354,6 @@ export function initExposure(): void { }, ); - let idDialog = 0; - - const dialogResponses = new Map(); - - contextBridge.exposeInMainWorld('saveFileDialog', async (message: string, defaultPath: string) => { - // generate id - const dialogId = idDialog; - idDialog++; - - // create defer object - const defer = new Deferred(); - - // store the dialogID - dialogResponses.set(`${dialogId}`, (result: Electron.SaveDialogReturnValue) => { - defer.resolve(result); - }); - - // ask to open file dialog - ipcRenderer.send('dialog:saveFile', { - dialogId: `${dialogId}`, - message, - defaultPath, - }); - - // wait for response - return defer.promise; - }); - - contextBridge.exposeInMainWorld( - 'openFileDialog', - async (message: string, filter?: { extensions: string[]; name: string }) => { - // generate id - const dialogId = idDialog; - idDialog++; - - // create defer object - const defer = new Deferred(); - - // store the dialogID - dialogResponses.set(`${dialogId}`, (result: Electron.OpenDialogReturnValue) => { - defer.resolve(result); - }); - - // ask to open file dialog - ipcRenderer.send('dialog:openFile', { - dialogId: `${dialogId}`, - message, - filter, - }); - - // wait for response - return defer.promise; - }, - ); - - contextBridge.exposeInMainWorld('openFolderDialog', async (message: string) => { - // generate id - const dialogId = idDialog; - idDialog++; - - // create defer object - const defer = new Deferred(); - - // store the dialogID - dialogResponses.set(`${dialogId}`, (result: Electron.OpenDialogReturnValue) => { - defer.resolve(result); - }); - - // ask to open file dialog - ipcRenderer.send('dialog:openFolder', { - dialogId: `${dialogId}`, - message, - }); - - // wait for response - return defer.promise; - }); - contextBridge.exposeInMainWorld('getFreePort', async (port: number): Promise => { return ipcInvoke('system:get-free-port', port); });