This commit is contained in:
hosseintaromi 2025-12-19 22:23:43 +03:30
parent 5cb4f76d11
commit dd1d0b02b9
1 changed files with 14 additions and 3 deletions

View File

@ -102,6 +102,17 @@ const validateMediaFile = async (file: File, options?: { requireSquare?: boolean
} }
}; };
const validateExplorerFile = async (file: File) => {
if (isImageFile(file)) {
await ensureSquareImage(file);
return;
}
if (isVideoFile(file)) {
return;
}
throw new Error('فقط تصاویر یا ویدیو مجاز است');
};
const mapExplorerFiles = (entries: any[]): ProductImage[] => { const mapExplorerFiles = (entries: any[]): ProductImage[] => {
if (!entries || !Array.isArray(entries)) { if (!entries || !Array.isArray(entries)) {
return []; return [];
@ -302,7 +313,7 @@ const ProductFormPage = () => {
const handleExplorerUpload = async (file: File) => { const handleExplorerUpload = async (file: File) => {
try { try {
await validateMediaFile(file, { requireSquare: isImageFile(file) }); await validateExplorerFile(file);
const result = await uploadFile(file); const result = await uploadFile(file);
setExplorerFiles(prev => { setExplorerFiles(prev => {
const newImage: ProductImage = { const newImage: ProductImage = {
@ -656,11 +667,11 @@ const ProductFormPage = () => {
onUpload={handleExplorerUpload} onUpload={handleExplorerUpload}
onRemove={handleExplorerRemove} onRemove={handleExplorerRemove}
acceptedTypes={['image/*', 'video/*']} acceptedTypes={['image/*', 'video/*']}
maxFileSize={25 * 1024 * 1024} maxFileSize={0}
maxFiles={5} maxFiles={5}
mode="multi" mode="multi"
label="" label=""
description="فایل‌های Explorer را آپلود کنید (تصاویر مربعی با حداکثر ۲ مگ و ویدیوهای حداکثر ۲۵ مگ)" description="فایل‌های Explorer را آپلود کنید (تصاویر باید مربعی باشند)"
onUploadStart={() => setIsExplorerUploading(true)} onUploadStart={() => setIsExplorerUploading(true)}
onUploadComplete={() => setIsExplorerUploading(false)} onUploadComplete={() => setIsExplorerUploading(false)}
/> />