import PersonIcon from '@mui/icons-material/Person'; import { Button, Paper, type Theme, Typography } from '@mui/material'; import { useState } from 'react'; import { makeStyles } from 'tss-react/mui'; import FileDropZone, { type CustomDropZoneContentProps, transformFileListToArray } from '.'; const useStyles = makeStyles()((theme: Theme) => ({ root: { background: theme.palette.divider, borderColor: theme.palette.primary.dark, color: theme.palette.primary.dark } })); export default { title: 'File Drop Zone' }; interface Props { CustomDropZoneContent?: (props: CustomDropZoneContentProps) => JSX.Element; accept: string; className?: string; maxFileSize?: number; multiple: boolean; } const Story = ({ accept, multiple, CustomDropZoneContent, maxFileSize, className }: Props): JSX.Element => { const [files, setFiles] = useState(null); return ( setFiles(null)} /> {files && transformFileListToArray(files).map((file) => ( {file.name} ))} ); }; export const basicSingleImage = (): JSX.Element => ( ); export const basicMultipleImage = (): JSX.Element => ( ); export const basicSingleCustomExtension = (): JSX.Element => ( ); const DropZoneContent = ({ openFileExplorer }: CustomDropZoneContentProps): JSX.Element => (
); export const basicSingleImageWithACustomDropZoneContent = (): JSX.Element => ( ); export const basicSingleImageWithMaxFileSize = (): JSX.Element => ( ); const CustomFileDropZone = (): JSX.Element => { const { classes } = useStyles(); return ; }; export const customFileDropZone = (): JSX.Element => ;