1
0
mirror of https://github.com/upscayl/upscayl.git synced 2024-11-15 03:07:42 +01:00
upscayl/electron/commands/select-file.ts

59 lines
1.6 KiB
TypeScript
Raw Normal View History

2023-09-10 11:14:04 +02:00
import { MessageBoxOptions, dialog } from "electron";
2023-09-10 19:42:18 +02:00
import { getMainWindow } from "../main-window";
import { imagePath, setImagePath } from "../utils/config-variables";
2023-09-10 11:14:04 +02:00
import logit from "../utils/logit";
const selectFile = async () => {
2023-09-10 19:54:08 +02:00
const mainWindow = getMainWindow();
2023-09-10 11:14:04 +02:00
const { canceled, filePaths } = await dialog.showOpenDialog({
properties: ["openFile", "multiSelections"],
title: "Select Image",
2023-09-10 19:42:18 +02:00
defaultPath: imagePath,
2023-09-10 11:14:04 +02:00
});
if (canceled) {
logit("🚫 File Operation Cancelled");
return null;
} else {
setImagePath(filePaths[0]);
let isValid = false;
// READ SELECTED FILES
filePaths.forEach((file) => {
// log.log("Files in Folder: ", file);
if (
file.endsWith(".png") ||
file.endsWith(".jpg") ||
file.endsWith(".jpeg") ||
file.endsWith(".webp") ||
file.endsWith(".JPG") ||
file.endsWith(".PNG") ||
file.endsWith(".JPEG") ||
file.endsWith(".WEBP")
) {
isValid = true;
}
});
if (!isValid) {
logit("❌ Invalid File Detected");
const options: MessageBoxOptions = {
type: "error",
title: "Invalid File",
message:
"The selected file is not a valid image. Make sure you select a '.png', '.jpg', or '.webp' file.",
};
2023-09-10 19:42:18 +02:00
if (!mainWindow) return null;
2023-09-10 11:14:04 +02:00
dialog.showMessageBoxSync(mainWindow, options);
return null;
}
logit("📄 Selected File Path: ", filePaths[0]);
// CREATE input AND upscaled FOLDER
return filePaths[0];
}
};
export default selectFile;