fix: 아이콘 업로드 토스트 - 루프 내 카운트 추적 방식으로 수정

This commit is contained in:
caadiq 2025-12-26 20:23:04 +09:00
parent 929e522860
commit b3be6f3a61

View file

@ -366,6 +366,8 @@ export default function Admin({ isMobile = false }) {
if (filesToUpload.length === 0) return; if (filesToUpload.length === 0) return;
setIconUploading(true); setIconUploading(true);
let successCount = 0;
let failCount = 0;
for (const fileObj of filesToUpload) { for (const fileObj of filesToUpload) {
// 'processing' // 'processing'
@ -394,29 +396,32 @@ export default function Admin({ isMobile = false }) {
result: `${result.uploaded}개 업로드, ${result.updated}개 DB 업데이트` result: `${result.uploaded}개 업로드, ${result.updated}개 DB 업데이트`
} : f) } : f)
); );
successCount++;
} else { } else {
const errorMsg = data.errors?.[0]?.error || data.error || '업로드 실패'; const errorMsg = data.errors?.[0]?.error || data.error || '업로드 실패';
setPendingIconFiles(prev => setPendingIconFiles(prev =>
prev.map(f => f.name === fileObj.name ? { ...f, status: 'error', error: errorMsg } : f) prev.map(f => f.name === fileObj.name ? { ...f, status: 'error', error: errorMsg } : f)
); );
failCount++;
} }
} catch (error) { } catch (error) {
setPendingIconFiles(prev => setPendingIconFiles(prev =>
prev.map(f => f.name === fileObj.name ? { ...f, status: 'error', error: error.message } : f) prev.map(f => f.name === fileObj.name ? { ...f, status: 'error', error: error.message } : f)
); );
failCount++;
} }
} }
setIconUploading(false); setIconUploading(false);
fetchIconMods(); fetchIconMods();
// // ( )
const successCount = pendingIconFiles.filter(f => f.status === 'success').length; if (successCount > 0 && failCount === 0) {
const errorCount = pendingIconFiles.filter(f => f.status === 'error').length; setToast(`${successCount}개 아이콘 ZIP 업로드 완료!`);
if (successCount > 0) { } else if (successCount > 0 && failCount > 0) {
setToast(`아이콘 업로드 완료: ${successCount}개 성공${errorCount > 0 ? `, ${errorCount}개 실패` : ''}`); setToast(`완료: ${successCount}개 성공, ${failCount}개 실패`, true);
} else if (errorCount > 0) { } else if (failCount > 0) {
setToast(`아이콘 업로드 실패: ${errorCount}`, true); setToast(`${failCount}개 아이콘 업로드 실패`, true);
} }
}; };