diff options
| author | joonhoekim <26rote@gmail.com> | 2025-11-26 18:57:47 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-11-26 18:57:47 +0900 |
| commit | 2b5d063ab408a163c016358251192a07a337eaa7 (patch) | |
| tree | 71b9678169666211dc07663a1b1b9c8c0acf8b91 /lib/dolce/dialogs/detail-drawing-dialog.tsx | |
| parent | 5a370de52d6947d35aa07f9545c4f6a4d83eadd7 (diff) | |
(김준회) dolce: 다운로드 시각적 피드백 표시 (UX)
Diffstat (limited to 'lib/dolce/dialogs/detail-drawing-dialog.tsx')
| -rw-r--r-- | lib/dolce/dialogs/detail-drawing-dialog.tsx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/dolce/dialogs/detail-drawing-dialog.tsx b/lib/dolce/dialogs/detail-drawing-dialog.tsx index afe4a4c2..99154296 100644 --- a/lib/dolce/dialogs/detail-drawing-dialog.tsx +++ b/lib/dolce/dialogs/detail-drawing-dialog.tsx @@ -59,6 +59,7 @@ export function DetailDrawingDialog({ const [editDialogOpen, setEditDialogOpen] = useState(false); const [editingDetailDrawing, setEditingDetailDrawing] = useState<DetailDwgReceiptItem | null>(null); const [uploadFilesDialogOpen, setUploadFilesDialogOpen] = useState(false); + const [downloadingFileId, setDownloadingFileId] = useState<string | null>(null); // 상세도면 목록 로드 const loadDetailDrawings = useCallback(async () => { @@ -126,6 +127,7 @@ export function DetailDrawingDialog({ const handleDownload = async (file: FileInfoItem) => { try { + setDownloadingFileId(file.FileId); toast.info(t("detailDialog.downloadPreparing")); // 파일 생성자의 userId를 사용하여 다운로드 @@ -159,6 +161,8 @@ export function DetailDrawingDialog({ } catch (error) { console.error("파일 다운로드 실패:", error); toast.error(t("detailDialog.downloadError")); + } finally { + setDownloadingFileId(null); } }; @@ -187,7 +191,7 @@ export function DetailDrawingDialog({ loadFiles(); }; - const fileColumns = createFileListColumns({ onDownload: handleDownload, lng }); + const fileColumns = createFileListColumns({ onDownload: handleDownload, lng, downloadingFileId }); // RegisterId + UploadId 조합으로 고유 ID 생성 const getDetailDrawingId = (detail: DetailDwgReceiptItem) => { |
