/* eslint-disable */ // @ts-nocheck import { Button, DropEvent, FileUpload, FileUploadProps, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalVariant, } from "../../../shared/@patternfly/react-core"; import { ChangeEvent, DragEvent as ReactDragEvent, MouseEvent as ReactMouseEvent, useState, } from "react"; import { useTranslation } from "react-i18next"; import CodeEditor from "../form/CodeEditor"; type FileUploadType = { value: string; filename: string; isLoading: boolean; modal: boolean; }; export type FileUploadEvent = | ReactDragEvent // User dragged/dropped a file | ChangeEvent // User typed in the TextArea | ReactMouseEvent; // User clicked Clear button export type FileUploadFormProps = Omit & { id: string; extension: string; onChange: (value: string) => void; helpText?: string; unWrap?: boolean; language?: string; previewMaxLength?: number; }; export const FileUploadForm = ({ id, onChange, helpText = "helpFileUpload", unWrap = false, previewMaxLength = 102400, // 100KB language, extension, ...rest }: FileUploadFormProps) => { const { t } = useTranslation(); const defaultUpload: FileUploadType = { value: "", filename: "", isLoading: false, modal: false, }; const [fileUpload, setFileUpload] = useState(defaultUpload); const removeDialog = () => setFileUpload((prev) => ({ ...prev, modal: false })); const handleFileInputChange = (_event: DropEvent, file: File) => { setFileUpload((prev) => ({ ...prev, filename: file.name })); }; const handleTextOrDataChange = (value: string) => { setFileUpload((prev) => ({ ...prev, value })); onChange(value); }; const handleClear = () => { setFileUpload((prev) => ({ ...prev, modal: true })); }; return ( <> {fileUpload.modal && ( { setFileUpload(defaultUpload); onChange(""); }} > {t("clear")} , , ]} > {t("clearFileExplain")} )} {unWrap && ( handleTextOrDataChange(value)} onTextChange={(_, value) => handleTextOrDataChange(value)} onClearClick={handleClear} onReadStarted={() => setFileUpload((prev) => ({ ...prev, isLoading: true })) } onReadFinished={() => setFileUpload((prev) => ({ ...prev, isLoading: false })) } isLoading={fileUpload.isLoading} dropzoneProps={{ accept: { "application/text": [extension] }, }} /> )} {!unWrap && ( handleTextOrDataChange(value)} onTextChange={(_, value) => handleTextOrDataChange(value)} onClearClick={handleClear} onReadStarted={() => setFileUpload((prev) => ({ ...prev, isLoading: true })) } onReadFinished={() => setFileUpload((prev) => ({ ...prev, isLoading: false })) } isLoading={fileUpload.isLoading} hideDefaultPreview > {!rest.hideDefaultPreview && (!fileUpload.value || fileUpload.value.length < previewMaxLength ? ( handleTextOrDataChange(value)} readOnly={!rest.allowEditingUploadedText} /> ) : ( ))} {t(helpText)} )} ); };