import React, { useState } from 'react' import { Button, DialogActions, DialogContent, TextField } from '@mui/material' import { BootstrapDialogTitle } from './dialogTitle' import { BootstrapDialog } from './modal' type FilePathInputModalProps = { open: boolean setOpen: React.Dispatch> saveFile: (filePath: string) => void } const FilePathInputModal = ({ open, setOpen, saveFile }: FilePathInputModalProps) => { const [filePath, setFilePath] = useState('') const [hasError, setHasError] = useState(false) const [errorText, setErrorText] = useState('') const handleChange = (event: React.ChangeEvent) => { const value = event.target.value const specialChars = /[`!@#$%^&*()+\-=[\]{};':"\\|,<>?~]/ const fileExtension = /\.(exe|sh|htaccess)$/i if (specialChars.test(value)) { setHasError(true) setErrorText('can not have special characters') } else if (fileExtension.test(value)) { setHasError(true) setErrorText('can not save file with extensions [exe, sh, htaccess]') } else { setHasError(false) setErrorText('') } setFilePath(value) } const handleSubmit = (event: React.FormEvent) => { event.preventDefault() if (hasError || !filePath) return saveFile(filePath) } return ( setOpen(false)} open={open}> Save File
) } export default FilePathInputModal