summaryrefslogtreecommitdiff
path: root/components/ship-vendor-document/add-attachment-dialog.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-07-22 02:57:00 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-07-22 02:57:00 +0000
commitee57cc221ff2edafd3c0f12a181214c602ed257e (patch)
tree148f552f503798f7a350d6eff936b889f16be49f /components/ship-vendor-document/add-attachment-dialog.tsx
parent14f61e24947fb92dd71ec0a7196a6e815f8e66da (diff)
(대표님, 최겸) 이메일 템플릿, 벤더데이터 변경사항 대응, 기술영업 변경요구사항 구현
Diffstat (limited to 'components/ship-vendor-document/add-attachment-dialog.tsx')
-rw-r--r--components/ship-vendor-document/add-attachment-dialog.tsx40
1 files changed, 20 insertions, 20 deletions
diff --git a/components/ship-vendor-document/add-attachment-dialog.tsx b/components/ship-vendor-document/add-attachment-dialog.tsx
index 2f2467a3..a285b4de 100644
--- a/components/ship-vendor-document/add-attachment-dialog.tsx
+++ b/components/ship-vendor-document/add-attachment-dialog.tsx
@@ -55,15 +55,15 @@ const ACCEPTED_FILE_TYPES = [
const attachmentUploadSchema = z.object({
attachments: z
.array(z.instanceof(File))
- .min(1, "최소 1개의 파일을 업로드해주세요")
- .max(10, "최대 10개의 파일까지 업로드 가능합니다")
+ .min(1, "Please upload at least 1 file")
+ .max(10, "Maximum 10 files can be uploaded")
.refine(
(files) => files.every((file) => file.size <= MAX_FILE_SIZE),
- "파일 크기는 50MB 이하여야 합니다"
+ "File size must be 50MB or less"
)
.refine(
(files) => files.every((file) => ACCEPTED_FILE_TYPES.includes(file.type)),
- "지원하지 않는 파일 형식입니다"
+ "Unsupported file format"
),
})
@@ -128,10 +128,10 @@ function FileUploadArea({
>
<Paperclip className="mx-auto h-12 w-12 text-gray-400 mb-4" />
<p className="text-sm text-gray-600 mb-2">
- 추가할 파일을 드래그하여 놓거나 클릭하여 선택하세요
+ Drag files to add here or click to select
</p>
<p className="text-xs text-gray-500">
- PDF, Word, Excel, 이미지, 텍스트, ZIP 파일 지원 (최대 50MB)
+ Supports PDF, Word, Excel, Image, Text, ZIP files (max 50MB)
</p>
<input
ref={fileInputRef}
@@ -145,7 +145,7 @@ function FileUploadArea({
{files.length > 0 && (
<div className="space-y-2 max-h-40 overflow-y-auto overscroll-contain pr-2">
- <p className="text-sm font-medium">선택된 파일 ({files.length}개)</p>
+ <p className="text-sm font-medium">Selected Files ({files.length})</p>
<div className="max-h-40 overflow-y-auto space-y-2">
{files.map((file, index) => (
<div
@@ -251,7 +251,7 @@ export function AddAttachmentDialog({
if (!response.ok) {
const errorData = await response.json()
- throw new Error(errorData.error || errorData.details || '첨부파일 업로드에 실패했습니다.')
+ throw new Error(errorData.error || errorData.details || 'Failed to upload attachments.')
}
const result = await response.json()
@@ -259,10 +259,10 @@ export function AddAttachmentDialog({
toast.success(
result.message ||
- `${result.data?.uploadedFiles?.length || 0}개 첨부파일이 추가되었습니다.`
+ `${result.data?.uploadedFiles?.length || 0} attachments added.`
)
- console.log('✅ 첨부파일 업로드 성공:', result)
+ console.log('✅ Attachment upload successful:', result)
setTimeout(() => {
handleDialogClose()
@@ -270,8 +270,8 @@ export function AddAttachmentDialog({
}, 1000)
} catch (error) {
- console.error('❌ 첨부파일 업로드 오류:', error)
- toast.error(error instanceof Error ? error.message : "첨부파일 업로드 중 오류가 발생했습니다")
+ console.error('❌ Attachment upload error:', error)
+ toast.error(error instanceof Error ? error.message : "An error occurred while uploading attachments")
} finally {
setIsUploading(false)
setTimeout(() => setUploadProgress(0), 2000)
@@ -285,10 +285,10 @@ export function AddAttachmentDialog({
<DialogHeader className="flex-shrink-0 pb-4 border-b">
<DialogTitle className="flex items-center gap-2">
<Paperclip className="h-5 w-5" />
- 첨부파일 추가
+ Add Attachments
</DialogTitle>
<DialogDescription className="text-sm">
- 리비전 {revisionName}에 추가 첨부파일을 업로드합니다
+ Upload additional attachments to revision {revisionName}
</DialogDescription>
</DialogHeader>
@@ -302,7 +302,7 @@ export function AddAttachmentDialog({
name="attachments"
render={({ field }) => (
<FormItem>
- <FormLabel className="required">첨부파일</FormLabel>
+ <FormLabel className="required">Attachments</FormLabel>
<FormControl>
<FileUploadArea
files={watchedFiles || []}
@@ -318,14 +318,14 @@ export function AddAttachmentDialog({
{isUploading && (
<div className="space-y-2">
<div className="flex items-center justify-between text-sm">
- <span>업로드 진행률</span>
+ <span>Upload Progress</span>
<span>{uploadProgress.toFixed(0)}%</span>
</div>
<Progress value={uploadProgress} className="w-full" />
{uploadProgress === 100 && (
<div className="flex items-center gap-2 text-sm text-green-600">
<CheckCircle className="h-4 w-4" />
- <span>업로드 완료</span>
+ <span>Upload Complete</span>
</div>
)}
</div>
@@ -340,7 +340,7 @@ export function AddAttachmentDialog({
onClick={handleDialogClose}
disabled={isUploading}
>
- 취소
+ Cancel
</Button>
<Button
type="submit"
@@ -350,12 +350,12 @@ export function AddAttachmentDialog({
{isUploading ? (
<>
<Loader2 className="mr-2 h-4 w-4 animate-spin" />
- 업로드 중...
+ Uploading...
</>
) : (
<>
<Upload className="mr-2 h-4 w-4" />
- 추가
+ Add
</>
)}
</Button>