@@ -15,6 +15,7 @@ import { FolderPlus, Folder } from "lucide-react";
1515import { uploadFile } from "@/lib/supabase/storage" ;
1616import { useAuth } from "@/lib/firebase/auth" ;
1717import { useToast } from "@/context/ToastContext" ;
18+ import { CONFIG , isAllowedFileType , sanitizeInput } from "@/lib/config" ;
1819import styles from "./UploadFlow.module.css" ;
1920
2021export default function UploadFlow ( ) {
@@ -112,8 +113,10 @@ export default function UploadFlow() {
112113 try {
113114 await createFolder ( {
114115 subjectId : selectedSub ,
115- departmentId : selectedDept , // Denormalize for easier querying if needed
116- name : newFolderName . trim ( ) ,
116+ semesterId : selectedSem ,
117+ batchId : selectedBatch ,
118+ departmentId : selectedDept ,
119+ name : sanitizeInput ( newFolderName . trim ( ) ) ,
117120 createdBy : user ?. uid
118121 } ) ;
119122 setNewFolderName ( "" ) ;
@@ -141,20 +144,26 @@ export default function UploadFlow() {
141144 } ;
142145
143146 const addFiles = ( newFiles : File [ ] ) => {
144- const MAX_SIZE = 50 * 1024 * 1024 ; // 50 MB
145147 const validFiles : File [ ] = [ ] ;
146148 const invalidFiles : string [ ] = [ ] ;
149+ const unsupportedFiles : string [ ] = [ ] ;
147150
148151 newFiles . forEach ( file => {
149- if ( file . size <= MAX_SIZE ) {
150- validFiles . push ( file ) ;
151- } else {
152+ if ( file . size > CONFIG . MAX_FILE_SIZE ) {
152153 invalidFiles . push ( file . name ) ;
154+ } else if ( ! isAllowedFileType ( file . type ) ) {
155+ unsupportedFiles . push ( file . name ) ;
156+ } else {
157+ validFiles . push ( file ) ;
153158 }
154159 } ) ;
155160
156161 if ( invalidFiles . length > 0 ) {
157- addToast ( `Skipped files larger than 50MB: ${ invalidFiles . join ( ", " ) } ` , "warning" ) ;
162+ addToast ( `Files larger than 50MB were skipped: ${ invalidFiles . join ( ", " ) } ` , "warning" ) ;
163+ }
164+
165+ if ( unsupportedFiles . length > 0 ) {
166+ addToast ( `Unsupported file types were skipped: ${ unsupportedFiles . join ( ", " ) } ` , "warning" ) ;
158167 }
159168
160169 setFiles ( prev => [ ...prev , ...validFiles ] ) ;
@@ -217,6 +226,8 @@ export default function UploadFlow() {
217226 // Create it
218227 const ref = await createFolder ( {
219228 subjectId : selectedSub ,
229+ semesterId : selectedSem ,
230+ batchId : selectedBatch ,
220231 departmentId : selectedDept ,
221232 name : folderName ,
222233 createdBy : user . uid
0 commit comments