From b3be6f3a615a9eb6295e1995940a49e16e4cf2ff Mon Sep 17 00:00:00 2001 From: caadiq Date: Fri, 26 Dec 2025 20:23:04 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=ED=86=A0=EC=8A=A4=ED=8A=B8=20-=20?= =?UTF-8?q?=EB=A3=A8=ED=94=84=20=EB=82=B4=20=EC=B9=B4=EC=9A=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=B6=94=EC=A0=81=20=EB=B0=A9=EC=8B=9D=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/Admin.jsx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/frontend/src/pages/Admin.jsx b/frontend/src/pages/Admin.jsx index d55424f..2d9d11b 100644 --- a/frontend/src/pages/Admin.jsx +++ b/frontend/src/pages/Admin.jsx @@ -366,6 +366,8 @@ export default function Admin({ isMobile = false }) { if (filesToUpload.length === 0) return; setIconUploading(true); + let successCount = 0; + let failCount = 0; for (const fileObj of filesToUpload) { // 상태를 'processing'으로 변경 @@ -394,29 +396,32 @@ export default function Admin({ isMobile = false }) { result: `${result.uploaded}개 업로드, ${result.updated}개 DB 업데이트` } : f) ); + successCount++; } else { const errorMsg = data.errors?.[0]?.error || data.error || '업로드 실패'; setPendingIconFiles(prev => prev.map(f => f.name === fileObj.name ? { ...f, status: 'error', error: errorMsg } : f) ); + failCount++; } } catch (error) { setPendingIconFiles(prev => prev.map(f => f.name === fileObj.name ? { ...f, status: 'error', error: error.message } : f) ); + failCount++; } } setIconUploading(false); fetchIconMods(); - - // 완료 토스트 표시 - const successCount = pendingIconFiles.filter(f => f.status === 'success').length; - const errorCount = pendingIconFiles.filter(f => f.status === 'error').length; - if (successCount > 0) { - setToast(`아이콘 업로드 완료: ${successCount}개 성공${errorCount > 0 ? `, ${errorCount}개 실패` : ''}`); - } else if (errorCount > 0) { - setToast(`아이콘 업로드 실패: ${errorCount}개`, true); + + // 결과 토스트 (모드 번역과 동일한 방식) + if (successCount > 0 && failCount === 0) { + setToast(`${successCount}개 아이콘 ZIP 업로드 완료!`); + } else if (successCount > 0 && failCount > 0) { + setToast(`완료: ${successCount}개 성공, ${failCount}개 실패`, true); + } else if (failCount > 0) { + setToast(`${failCount}개 아이콘 업로드 실패`, true); } };