@@ -46,16 +46,17 @@ export default function FileDropzone({ onFileSelected, selectedFile }: Props) {
4646 if ( ! fileConfig ) {
4747 return "Configuration loading, please wait..." ;
4848 }
49- if ( ! acceptedTypes . includes ( file . type ) ) {
49+ const fileExt = '.' + ( file . name . split ( '.' ) . pop ( ) ?. toLowerCase ( ) || '' ) ;
50+ if ( ! acceptedTypes . includes ( file . type ) && ! acceptedExtensions . includes ( fileExt ) ) {
5051 const allExts = groupedBySize . flatMap ( g => g . extensions ) . join ( ', ' ) ;
5152 return `Unsupported file type. Allowed: ${ allExts } ` ;
5253 }
53- const maxMb = maxSizes [ file . type ] ?? 10 ;
54+ const maxMb = maxSizes [ file . type ] ?? fileConfig [ fileExt ] ?. max_size_mb ?? 10 ;
5455 if ( file . size > maxMb * 1024 * 1024 ) {
5556 return `File too large. Max ${ maxMb } MB for this type.` ;
5657 }
5758 return null ;
58- } , [ fileConfig , acceptedTypes , maxSizes , groupedBySize ] ) ;
59+ } , [ fileConfig , acceptedTypes , acceptedExtensions , maxSizes , groupedBySize ] ) ;
5960
6061 const handleFiles = useCallback ( ( files : FileList | null ) => {
6162 if ( ! files || files . length === 0 ) return ;
@@ -109,7 +110,7 @@ export default function FileDropzone({ onFileSelected, selectedFile }: Props) {
109110 < div className = "dz-content" >
110111 { selectedFile ? (
111112 < >
112- < div className = "dz-file-icon" style = { { fontSize : "48px " , marginBottom : "var(--space-2)" } } >
113+ < div className = "dz-file-icon" style = { { fontSize : "var(--text-5xl) " , marginBottom : "var(--space-2)" } } >
113114 { selectedFile . type . startsWith ( "image/" ) ? "🖼️" : "📄" }
114115 </ div >
115116 < div className = "dz-title" > { selectedFile . name } </ div >
0 commit comments