From 044a859e9133c1e3ec18aceb75ee92052cd946d1 Mon Sep 17 00:00:00 2001 From: c0re100 Date: Wed, 8 Nov 2023 07:43:27 +0800 Subject: [PATCH] Add showOpenDialog to VesktopNative --- src/main/ipc.ts | 9 +++++++++ src/preload/VesktopNative.ts | 4 +++- src/shared/IpcEvents.ts | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/ipc.ts b/src/main/ipc.ts index 84755f4..6888d1b 100644 --- a/src/main/ipc.ts +++ b/src/main/ipc.ts @@ -4,6 +4,8 @@ * Copyright (c) 2023 Vendicated and Vencord contributors */ +import * as electron from "electron"; + if (process.platform === "linux") import("./virtmic"); import { execFile } from "child_process"; @@ -114,6 +116,13 @@ handle(IpcEvents.SELECT_VENCORD_DIR, async () => { return dir; }); +handle(IpcEvents.SHOW_OPEN_DIALOG, async (_, options: electron.OpenDialogOptions) => { + const res = await dialog.showOpenDialog(mainWin!, options); + if (!res.filePaths.length) return []; + + return res.filePaths; +}); + handle(IpcEvents.SET_BADGE_COUNT, (_, count: number) => setBadgeCount(count)); function readCss() { diff --git a/src/preload/VesktopNative.ts b/src/preload/VesktopNative.ts index ca711bc..0323b7b 100644 --- a/src/preload/VesktopNative.ts +++ b/src/preload/VesktopNative.ts @@ -10,6 +10,7 @@ import type { LiteralUnion } from "type-fest"; import { IpcEvents } from "../shared/IpcEvents"; import { invoke, sendSync } from "./typedIpc"; +import electron from "electron"; type SpellCheckerResultCallback = (word: string, suggestions: string[]) => void; @@ -33,7 +34,8 @@ export const VesktopNative = { }, fileManager: { showItemInFolder: (path: string) => invoke(IpcEvents.SHOW_ITEM_IN_FOLDER, path), - selectVencordDir: () => invoke>(IpcEvents.SELECT_VENCORD_DIR) + selectVencordDir: () => invoke>(IpcEvents.SELECT_VENCORD_DIR), + showOpenDialog: (options: electron.OpenDialogOptions) => invoke(IpcEvents.SHOW_OPEN_DIALOG, options) }, settings: { get: () => sendSync(IpcEvents.GET_SETTINGS), diff --git a/src/shared/IpcEvents.ts b/src/shared/IpcEvents.ts index bd857c4..8f69a75 100644 --- a/src/shared/IpcEvents.ts +++ b/src/shared/IpcEvents.ts @@ -20,6 +20,7 @@ export const enum IpcEvents { MAXIMIZE = "VCD_MAXIMIZE", SHOW_ITEM_IN_FOLDER = "VCD_SHOW_ITEM_IN_FOLDER", + SHOW_OPEN_DIALOG = "VCD_SHOW_OPEN_DIALOG", GET_SETTINGS = "VCD_GET_SETTINGS", SET_SETTINGS = "VCD_SET_SETTINGS",