From a33b3cde73d78463ed9044faafd667b7c9e40366 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 6 Dec 2022 09:15:37 -0500 Subject: [PATCH] Remove another use of legacy requestOpenPathPicker Signed-off-by: Sebastian Malton --- ...tall-from-select-file-dialog.injectable.ts | 39 ++++++++----------- .../components/path-picker/path-picker.tsx | 4 +- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts b/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts index ae9dddc299..1f10f9625c 100644 --- a/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts +++ b/src/renderer/components/+extensions/install-from-select-file-dialog.injectable.ts @@ -3,37 +3,30 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { requestOpenFilePickingDialog } from "../../ipc"; import { supportedExtensionFormats } from "./supported-extension-formats"; import attemptInstallsInjectable from "./attempt-installs.injectable"; import directoryForDownloadsInjectable from "../../../common/app-paths/directory-for-downloads/directory-for-downloads.injectable"; +import openPathPickingDialogInjectable from "../../../features/path-picking-dialog/renderer/pick-paths.injectable"; -interface Dependencies { - attemptInstalls: (filePaths: string[]) => Promise; - directoryForDownloads: string; -} - -const installFromSelectFileDialog = ({ attemptInstalls, directoryForDownloads }: Dependencies) => async () => { - const { canceled, filePaths } = await requestOpenFilePickingDialog({ - defaultPath: directoryForDownloads, - properties: ["openFile", "multiSelections"], - message: `Select extensions to install (formats: ${supportedExtensionFormats.join(", ")}), `, - buttonLabel: "Use configuration", - filters: [{ name: "tarball", extensions: supportedExtensionFormats }], - }); - - if (!canceled) { - await attemptInstalls(filePaths); - } -}; +export type InstallFromSelectFileDialog = () => Promise; const installFromSelectFileDialogInjectable = getInjectable({ id: "install-from-select-file-dialog", - instantiate: (di) => installFromSelectFileDialog({ - attemptInstalls: di.inject(attemptInstallsInjectable), - directoryForDownloads: di.inject(directoryForDownloadsInjectable), - }), + instantiate: (di): InstallFromSelectFileDialog => { + const attemptInstalls = di.inject(attemptInstallsInjectable); + const directoryForDownloads = di.inject(directoryForDownloadsInjectable); + const openPathPickingDialog = di.inject(openPathPickingDialogInjectable); + + return () => openPathPickingDialog({ + defaultPath: directoryForDownloads, + properties: ["openFile", "multiSelections"], + message: `Select extensions to install (formats: ${supportedExtensionFormats.join(", ")}), `, + buttonLabel: "Use configuration", + filters: [{ name: "tarball", extensions: supportedExtensionFormats }], + onPick: attemptInstalls, + }); + }, }); export default installFromSelectFileDialogInjectable; diff --git a/src/renderer/components/path-picker/path-picker.tsx b/src/renderer/components/path-picker/path-picker.tsx index cfcf4ea84e..08202a3ead 100644 --- a/src/renderer/components/path-picker/path-picker.tsx +++ b/src/renderer/components/path-picker/path-picker.tsx @@ -14,8 +14,8 @@ import { Button } from "../button"; export interface PathPickOpts { message: string; - onPick?: (paths: string[]) => any; - onCancel?: () => any; + onPick?: (paths: string[]) => void | Promise; + onCancel?: () => void | Promise; defaultPath?: string; buttonLabel?: string; filters?: FileFilter[];