11import { getFileExtension } from '@/lib/uploads/utils/file-utils'
2+ import { normalizeMimeType } from '@/lib/uploads/utils/mime'
23import { SUPPORTED_CODE_EXTENSIONS } from '@/lib/uploads/utils/validation'
34
45const TEXT_EDITABLE_MIME_TYPES = new Set ( [
@@ -132,7 +133,7 @@ export type FileCategory =
132133 | 'unsupported'
133134
134135export function resolveFileCategory ( mimeType : string | null , filename : string ) : FileCategory {
135- mimeType = mimeType ?. split ( ';' , 1 ) [ 0 ] . trim ( ) . toLowerCase ( ) ?? null
136+ mimeType = normalizeMimeType ( mimeType )
136137 if ( mimeType && TEXT_EDITABLE_MIME_TYPES . has ( mimeType ) ) return 'text-editable'
137138 if ( mimeType && IFRAME_PREVIEWABLE_MIME_TYPES . has ( mimeType ) ) return 'iframe-previewable'
138139 if ( mimeType && IMAGE_PREVIEWABLE_MIME_TYPES . has ( mimeType ) ) return 'image-previewable'
@@ -147,15 +148,15 @@ export function resolveFileCategory(mimeType: string | null, filename: string):
147148 const sourceName = filename . replace ( / \. ( e x a m p l e | t e m p l a t e | s a m p l e | d i s t | d e f a u l t ) $ / i, '' )
148149 const nameKey = getFileExtension ( sourceName ) || sourceName . toLowerCase ( )
149150 if ( TEXT_EDITABLE_EXTENSIONS . has ( nameKey ) ) return 'text-editable'
150- if ( / ^ \. ? e n v (?: \( \d + \) ) * (?: \. [ \w . - ] + ) ? $ / i. test ( filename ) ) return 'text-editable'
151- if ( / ^ d o c k e r f i l e \. [ \w . - ] + $ / i. test ( filename ) ) return 'text-editable'
152151 if ( IFRAME_PREVIEWABLE_EXTENSIONS . has ( ext ) ) return 'iframe-previewable'
153152 if ( IMAGE_PREVIEWABLE_EXTENSIONS . has ( ext ) ) return 'image-previewable'
154153 if ( AUDIO_PREVIEWABLE_EXTENSIONS . has ( ext ) ) return 'audio-previewable'
155154 if ( VIDEO_PREVIEWABLE_EXTENSIONS . has ( ext ) ) return 'video-previewable'
156155 if ( DOCX_PREVIEWABLE_EXTENSIONS . has ( ext ) ) return 'docx-previewable'
157156 if ( PPTX_PREVIEWABLE_EXTENSIONS . has ( ext ) ) return 'pptx-previewable'
158157 if ( XLSX_PREVIEWABLE_EXTENSIONS . has ( ext ) ) return 'xlsx-previewable'
158+ if ( / ^ \. ? e n v (?: \( \d + \) ) * (?: \. [ \w . - ] + ) ? $ / i. test ( filename ) ) return 'text-editable'
159+ if ( / ^ d o c k e r f i l e \. [ \w . - ] + $ / i. test ( filename ) ) return 'text-editable'
159160
160161 return 'unsupported'
161162}
0 commit comments