summaryrefslogtreecommitdiff
path: root/components/ship-vendor-document/new-revision-dialog.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'components/ship-vendor-document/new-revision-dialog.tsx')
-rw-r--r--components/ship-vendor-document/new-revision-dialog.tsx62
1 files changed, 31 insertions, 31 deletions
diff --git a/components/ship-vendor-document/new-revision-dialog.tsx b/components/ship-vendor-document/new-revision-dialog.tsx
index 83c9c658..7adc0b3a 100644
--- a/components/ship-vendor-document/new-revision-dialog.tsx
+++ b/components/ship-vendor-document/new-revision-dialog.tsx
@@ -67,20 +67,20 @@ const ACCEPTED_FILE_TYPES = [
// drawingKind에 따른 동적 스키마 생성
const createRevisionUploadSchema = (drawingKind: string) => {
const baseSchema = {
- usage: z.string().min(1, "용도를 선택해주세요"),
- revision: z.string().min(1, "리비전을 입력해주세요").max(50, "리비전은 50자 이내로 입력해주세요"),
+ usage: z.string().min(1, "Please select a usage"),
+ revision: z.string().min(1, "Please enter a revision").max(50, "Revision must be 50 characters or less"),
comment: z.string().optional(),
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"
),
}
@@ -88,7 +88,7 @@ const createRevisionUploadSchema = (drawingKind: string) => {
if (drawingKind === 'B3') {
return z.object({
...baseSchema,
- usageType: z.string().min(1, "용도 타입을 선택해주세요"),
+ usageType: z.string().min(1, "Please select a usage type"),
})
} else {
return z.object({
@@ -151,7 +151,7 @@ const getUsageTypeOptions = (usage: string) => {
// 리비전 형식 가이드 생성
const getRevisionGuide = () => {
- return "R01, R02, R03... 형식으로 입력하세요"
+ return "Enter in R01, R02, R03... format"
}
interface NewRevisionDialogProps {
@@ -216,10 +216,10 @@ function FileUploadArea({
>
<Upload className="mx-auto h-12 w-12 text-gray-400 mb-4" />
<p className="text-sm text-gray-600 mb-2">
- 파일을 드래그하여 놓거나 클릭하여 선택하세요
+ Drag files 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}
@@ -233,7 +233,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
@@ -386,7 +386,7 @@ export function NewRevisionDialog({
if (!response.ok) {
const errorData = await response.json()
- throw new Error(errorData.error || errorData.details || '업로드에 실패했습니다.')
+ throw new Error(errorData.error || errorData.details || 'Upload failed.')
}
const result = await response.json()
@@ -394,10 +394,10 @@ export function NewRevisionDialog({
toast.success(
result.message ||
- `리비전 ${data.revision}이 성공적으로 업로드되었습니다. (${result.data?.uploadedFiles?.length || 0}개 파일)`
+ `Revision ${data.revision} uploaded successfully. (${result.data?.uploadedFiles?.length || 0} files)`
)
- console.log('✅ 업로드 성공:', result)
+ console.log('✅ Upload successful:', result)
setTimeout(() => {
handleDialogClose()
@@ -405,8 +405,8 @@ export function NewRevisionDialog({
}, 1000)
} catch (error) {
- console.error('❌ 업로드 오류:', error)
- toast.error(error instanceof Error ? error.message : "업로드 중 오류가 발생했습니다")
+ console.error('❌ Upload error:', error)
+ toast.error(error instanceof Error ? error.message : "An error occurred during upload")
} finally {
setIsUploading(false)
setTimeout(() => setUploadProgress(0), 2000)
@@ -420,11 +420,11 @@ export function NewRevisionDialog({
<DialogHeader className="flex-shrink-0 pb-4 border-b">
<DialogTitle className="flex items-center gap-2">
<Upload className="h-5 w-5" />
- 새 리비전 업로드
+ Upload New Revision
</DialogTitle>
{documentTitle && (
<DialogDescription className="text-sm space-y-1">
- <div>문서: {documentTitle}</div>
+ <div>Document: {documentTitle}</div>
</DialogDescription>
)}
</DialogHeader>
@@ -439,11 +439,11 @@ export function NewRevisionDialog({
name="usage"
render={({ field }) => (
<FormItem>
- <FormLabel className="required">용도</FormLabel>
+ <FormLabel className="required">Usage</FormLabel>
<Select onValueChange={field.onChange} value={field.value}>
<FormControl>
<SelectTrigger>
- <SelectValue placeholder="용도를 선택하세요" />
+ <SelectValue placeholder="Select usage" />
</SelectTrigger>
</FormControl>
<SelectContent>
@@ -466,11 +466,11 @@ export function NewRevisionDialog({
name="usageType"
render={({ field }) => (
<FormItem>
- <FormLabel className="required">용도 타입</FormLabel>
+ <FormLabel className="required">Usage Type</FormLabel>
<Select onValueChange={field.onChange} value={field.value}>
<FormControl>
<SelectTrigger>
- <SelectValue placeholder="용도 타입을 선택하세요" />
+ <SelectValue placeholder="Select usage type" />
</SelectTrigger>
</FormControl>
<SelectContent>
@@ -493,7 +493,7 @@ export function NewRevisionDialog({
name="revision"
render={({ field }) => (
<FormItem>
- <FormLabel className="required">리비전</FormLabel>
+ <FormLabel className="required">Revision</FormLabel>
<FormControl>
<Input
placeholder={revisionGuide}
@@ -514,10 +514,10 @@ export function NewRevisionDialog({
name="comment"
render={({ field }) => (
<FormItem>
- <FormLabel>코멘트</FormLabel>
+ <FormLabel>Comment</FormLabel>
<FormControl>
<Textarea
- placeholder="리비전에 대한 설명이나 변경사항을 입력하세요 (선택사항)"
+ placeholder="Enter description or changes for this revision (optional)"
className="resize-none"
rows={3}
{...field}
@@ -534,7 +534,7 @@ export function NewRevisionDialog({
name="attachments"
render={({ field }) => (
<FormItem>
- <FormLabel className="required">첨부파일</FormLabel>
+ <FormLabel className="required">Attachments</FormLabel>
<FormControl>
<FileUploadArea
files={watchedFiles || []}
@@ -550,14 +550,14 @@ export function NewRevisionDialog({
{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>
@@ -572,7 +572,7 @@ export function NewRevisionDialog({
onClick={handleDialogClose}
disabled={isUploading}
>
- 취소
+ Cancel
</Button>
<Button
type="submit"
@@ -582,12 +582,12 @@ export function NewRevisionDialog({
{isUploading ? (
<>
<Loader2 className="mr-2 h-4 w-4 animate-spin" />
- 업로드 중...
+ Uploading...
</>
) : (
<>
<Upload className="mr-2 h-4 w-4" />
- 업로드
+ Upload
</>
)}
</Button>