UNPKG

@keycloakify/keycloak-admin-ui

Version:
74 lines (73 loc) 4.26 kB
import { PropsWithChildren } from "react"; import { DropEvent, DropzoneOptions } from "react-dropzone"; import { FileUploadFieldProps } from "../../../components/json-file-upload/patternfly/FileUploadField"; export interface FileUploadProps extends Omit<FileUploadFieldProps, "children" | "onBrowseButtonClick" | "onClearButtonClick" | "isDragActive" | "containerRef"> { /** Unique id for the TextArea, also used to generate ids for accessible labels. */ id: string; /** What type of file. Determines what is is passed to `onChange` and expected by `value` * (a string for 'text' and 'dataURL', or a File object otherwise. */ type?: "text" | "dataURL"; /** Value of the file's contents * (string if text file, File object otherwise) */ value?: string | File; /** Value to be shown in the read-only filename field. */ filename?: string; /** @deprecated A callback for when the file contents change. Please instead use onFileInputChange, onTextChange, onDataChange, onClearClick individually. */ onChange?: (value: string | File, filename: string, event: React.MouseEvent<HTMLButtonElement, MouseEvent> | React.ChangeEvent<HTMLElement> | DropEvent) => void; /** Change event emitted from the hidden \<input type="file" \> field associated with the component */ onFileInputChange?: (event: DropEvent, file: File) => void; /** Callback for clicking on the FileUploadField text area. By default, prevents a click in the text area from opening file dialog. */ onClick?: (event: React.MouseEvent) => void; /** Additional classes added to the FileUpload container element. */ className?: string; /** Flag to show if the field is disabled. */ isDisabled?: boolean; /** Flag to show if the field is read only. */ isReadOnly?: boolean; /** Flag to show if a file is being loaded. */ isLoading?: boolean; /** Aria-valuetext for the loading spinner */ spinnerAriaValueText?: string; /** Flag to show if the field is required. */ isRequired?: boolean; /** Value to indicate if the field is modified to show that validation state. * If set to success, field will be modified to indicate valid state. * If set to error, field will be modified to indicate error state. */ validated?: "success" | "error" | "default"; /** Aria-label for the TextArea. */ "aria-label"?: string; /** Placeholder string to display in the empty filename field */ filenamePlaceholder?: string; /** Aria-label for the read-only filename field */ filenameAriaLabel?: string; /** Text for the Browse button */ browseButtonText?: string; /** Text for the Clear button */ clearButtonText?: string; /** Flag to hide the built-in preview of the file (where available). * If true, you can use children to render an alternate preview. */ hideDefaultPreview?: boolean; /** Flag to allow editing of a text file's contents after it is selected from disk */ allowEditingUploadedText?: boolean; /** Additional children to render after (or instead of) the file preview. */ children?: React.ReactNode; /** A callback for when a selected file starts loading */ onReadStarted?: (fileHandle: File) => void; /** A callback for when a selected file finishes loading */ onReadFinished?: (fileHandle: File) => void; /** A callback for when the FileReader API fails */ onReadFailed?: (error: DOMException, fileHandle: File) => void; /** Optional extra props to customize react-dropzone. */ dropzoneProps?: DropzoneOptions; /** Clear button was clicked */ onClearClick?: React.MouseEventHandler<HTMLButtonElement>; /** Text area text changed */ onTextChange?: (text: string) => void; /** On data changed - if type='text' or type='dataURL' and file was loaded it will call this method */ onDataChange?: (data: string) => void; } export declare const FileUpload: { ({ id, type, value, filename, children, onChange, onFileInputChange, onReadStarted, onReadFinished, onReadFailed, onClearClick, onClick, onTextChange, onDataChange, dropzoneProps, ...props }: PropsWithChildren<FileUploadProps>): import("react/jsx-runtime").JSX.Element; displayName: string; };