import { Button, FormField } from "@awsui/components-react"; import React, { useCallback } from "react"; import { logError } from "../../utils/LogError"; import styles from "./UploadSolutionField.module.scss"; interface OwnProps { onChange?: (filename: string | undefined) => void; errorText?: string; filename?: string; } type Props = OwnProps; export const UploadSolutionField: React.FC = ({ onChange, errorText, filename }) => { const uploadCode = useCallback( () => window.electron.dialog .showOpenDialog({ properties: ["openFile"], filters: [{ name: "Solution files", extensions: ["sln"] }] }) .then(result => { const filename = result.filePaths.length > 0 ? result.filePaths[0] : undefined; if (onChange !== undefined) { onChange(filename); } }) .catch(err => { logError("UploadSolutionField.tsx", "Unable to open file", err); }), [onChange] ); return ( <> {filename !== undefined && errorText === undefined && (
{window.electron.getFilename(filename)}
{filename}
)} ); };