remove preview for all file except images

This commit is contained in:
smanylov
2026-02-23 14:44:22 +07:00
parent a33ccf4180
commit 332788a77a
5 changed files with 76 additions and 75 deletions
+10 -37
View File
@@ -8,6 +8,7 @@ import { useNavigationBlocker } from '@/app/hooks/useNavigationBlocker';
import { useQueryClient } from '@tanstack/react-query';
import { removeUserFile } from '@/app/actions/fileEntity';
import { FileSearchPanel } from '@/app/ui/search/file-search-panel';
import { getFileType } from '@/app/lib/getFileType';
interface SelectedFile {
file: File;
preview: string | undefined;
@@ -23,13 +24,15 @@ interface FileUploadInitResponse {
status: string
}
export interface AllowedExtensions {
images: string[],
videos: string[],
audios: string[],
documents: string[]
}
interface SectionSearchFile {
allowedExtensions: {
images: string[],
videos: string[],
audios: string[],
documents: string[]
}
allowedExtensions: AllowedExtensions
maxFileSize: number
}
@@ -58,36 +61,6 @@ export default function SectionSearchFile({ allowedExtensions, maxFileSize }: Se
return allExtensions.map(e => `.${e}`).join(', ');
}, [allExtensions]);
const getFileType = (fileName: string, allowedExtensions: {
images: string[],
videos: string[],
audios: string[],
documents: string[]
}): 'image' | 'video' | 'audio' | 'document' | 'unknown' => {
const lastDotIndex = fileName.lastIndexOf('.');
const extension = fileName.substring(lastDotIndex + 1).toLowerCase();
if (allowedExtensions.images.includes(extension)) {
return 'image';
}
if (allowedExtensions.videos.includes(extension)) {
return 'video';
}
if (allowedExtensions.audios.includes(extension)) {
return 'audio';
}
if (allowedExtensions.documents.includes(extension)) {
return 'document';
}
return 'unknown';
}
const validateFile = (file: File): { isValid: boolean; errorMessage?: string } => {
if (!allExtensions.includes(file.type as string)) {
const extension = file.name.split('.').pop()?.toLowerCase();
@@ -375,7 +348,7 @@ export default function SectionSearchFile({ allowedExtensions, maxFileSize }: Se
</div>
{isFileUploaded && (
<FileSearchPanel fileId={fileId} ref={childRef} />
<FileSearchPanel fileId={fileId} ref={childRef} allowedExtensions={allowedExtensions} />
)}
</div>
);