fix: 아이콘 업로드 토스트 - 루프 내 카운트 추적 방식으로 수정
This commit is contained in:
parent
929e522860
commit
b3be6f3a61
1 changed files with 13 additions and 8 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue