summaryrefslogtreecommitdiff
path: root/lib/vendor-document-list
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-document-list')
-rw-r--r--lib/vendor-document-list/plant/document-stage-dialogs.tsx169
1 files changed, 90 insertions, 79 deletions
diff --git a/lib/vendor-document-list/plant/document-stage-dialogs.tsx b/lib/vendor-document-list/plant/document-stage-dialogs.tsx
index 4c1861b9..14035562 100644
--- a/lib/vendor-document-list/plant/document-stage-dialogs.tsx
+++ b/lib/vendor-document-list/plant/document-stage-dialogs.tsx
@@ -429,7 +429,7 @@ React.useEffect(() => {
{/* Document Number Preview */}
<div className="mt-3 p-2 bg-white dark:bg-gray-900 border rounded">
<Label className="text-xs text-gray-600 dark:text-gray-400">
- {activeTab === "SHI" ? "Document Number" : "Vendor Document Number"} Preview:
+ {activeTab === "SHI" ? "Document Number" : "Project Document Number"} Preview:
</Label>
<div className="font-mono text-sm font-medium text-blue-600 dark:text-blue-400">
{generatePreviewDocNumber()}
@@ -525,85 +525,96 @@ React.useEffect(() => {
)
}
- return (
- <Dialog open={open} onOpenChange={onOpenChange}>
- <DialogContent className="sm:max-w-[700px] h-[80vh] flex flex-col">
- <DialogHeader className="flex-shrink-0">
- <DialogTitle>Add New Document</DialogTitle>
- <DialogDescription>
- Enter the basic information for the new document.
- </DialogDescription>
- </DialogHeader>
+ return (
+<Dialog open={open} onOpenChange={onOpenChange}>
+ <DialogContent className="sm:max-w-[700px] max-h-[80vh] flex flex-col overflow-hidden">
+ <DialogHeader className="flex-shrink-0">
+ <DialogTitle>Add New Document</DialogTitle>
+ <DialogDescription>
+ Enter the basic information for the new document.
+ </DialogDescription>
+ </DialogHeader>
+
+ {!shiType && !cpyType ? (
+ <div className="flex-1 flex items-center justify-center">
+ <Alert className="max-w-md">
+ <AlertTriangle className="h-4 w-4" />
+ <AlertDescription>
+ Required Document Number Type (SHI, CPY) is not configured. Please configure it first in the Number Types management.
+ </AlertDescription>
+ </Alert>
+ </div>
+ ) : (
+ <>
+ <Tabs
+ value={activeTab}
+ onValueChange={(v) => handleTabChange(v as "SHI" | "CPY")}
+ className="flex-1 min-h-0 flex flex-col"
+ >
+ {/* 고정 영역 */}
+ <TabsList className="grid w-full grid-cols-2 flex-shrink-0">
+ <TabsTrigger value="SHI" disabled={!shiType}>
+ SHI (Document No.)
+ {!shiType && <AlertTriangle className="ml-2 h-3 w-3" />}
+ </TabsTrigger>
+ <TabsTrigger value="CPY" disabled={!cpyType}>
+ CPY (Project Document No.)
+ {!cpyType && <AlertTriangle className="ml-2 h-3 w-3" />}
+ </TabsTrigger>
+ </TabsList>
+
+ {/* 스크롤 영역 */}
+ <div className="flex-1 min-h-0 mt-4 overflow-y-auto pr-2">
+ <TabsContent
+ value="SHI"
+ className="data-[state=inactive]:hidden"
+ >
+ {shiType ? (
+ <DocumentForm />
+ ) : (
+ <Alert>
+ <AlertTriangle className="h-4 w-4" />
+ <AlertDescription>
+ SHI Document Number Type is not configured.
+ </AlertDescription>
+ </Alert>
+ )}
+ </TabsContent>
- {!shiType && !cpyType ? (
- <div className="flex-1 flex items-center justify-center">
- <Alert className="max-w-md">
- <AlertTriangle className="h-4 w-4" />
- <AlertDescription>
- 필수 Document Number Type (SHI, CPY)이 설정되지 않았습니다.
- 먼저 Number Types 관리에서 설정해주세요.
- </AlertDescription>
- </Alert>
+ <TabsContent
+ value="CPY"
+ className="data-[state=inactive]:hidden"
+ >
+ {cpyType ? (
+ <DocumentForm />
+ ) : (
+ <Alert>
+ <AlertTriangle className="h-4 w-4" />
+ <AlertDescription>
+ CPY Document Number Type is not configured.
+ </AlertDescription>
+ </Alert>
+ )}
+ </TabsContent>
</div>
- ) : (
- <>
- <Tabs value={activeTab} onValueChange={(v) => handleTabChange(v as "SHI" | "CPY")} className="flex-1 flex flex-col">
- <TabsList className="grid w-full grid-cols-2">
- <TabsTrigger value="SHI" disabled={!shiType}>
- SHI (삼성중공업 도서번호)
- {!shiType && <AlertTriangle className="ml-2 h-3 w-3" />}
- </TabsTrigger>
- <TabsTrigger value="CPY" disabled={!cpyType}>
- CPY (프로젝트 문서번호)
- {!cpyType && <AlertTriangle className="ml-2 h-3 w-3" />}
- </TabsTrigger>
- </TabsList>
-
- <div className="flex-1 overflow-y-auto pr-2 mt-4">
- <TabsContent value="SHI" className="mt-0">
- {shiType ? (
- <DocumentForm />
- ) : (
- <Alert>
- <AlertTriangle className="h-4 w-4" />
- <AlertDescription>
- SHI Document Number Type이 설정되지 않았습니다.
- </AlertDescription>
- </Alert>
- )}
- </TabsContent>
-
- <TabsContent value="CPY" className="mt-0">
- {cpyType ? (
- <DocumentForm />
- ) : (
- <Alert>
- <AlertTriangle className="h-4 w-4" />
- <AlertDescription>
- CPY Document Number Type이 설정되지 않았습니다.
- </AlertDescription>
- </Alert>
- )}
- </TabsContent>
- </div>
- </Tabs>
+ </Tabs>
- <DialogFooter className="flex-shrink-0">
- <Button variant="outline" onClick={() => onOpenChange(false)} disabled={isSubmitting}>
- Cancel
- </Button>
- <Button
- onClick={handleSubmit}
- disabled={isSubmitting || !isFormValid() || (!shiType && !cpyType)}
- >
- {isSubmitting ? <Loader2 className="h-4 w-4 animate-spin mr-2" /> : null}
- Add Document
- </Button>
- </DialogFooter>
- </>
- )}
- </DialogContent>
- </Dialog>
+ <DialogFooter className="flex-shrink-0 border-t pt-4 mt-4">
+ <Button variant="outline" onClick={() => onOpenChange(false)} disabled={isSubmitting}>
+ Cancel
+ </Button>
+ <Button
+ onClick={handleSubmit}
+ disabled={isSubmitting || !isFormValid() || (!shiType && !cpyType)}
+ >
+ {isSubmitting ? <Loader2 className="h-4 w-4 animate-spin mr-2" /> : null}
+ Add Document
+ </Button>
+ </DialogFooter>
+ </>
+ )}
+ </DialogContent>
+</Dialog>
)
}
// =============================================================================
@@ -736,12 +747,12 @@ export function EditDocumentDialog({
{/* Vendor Document Number (Plant project only) */}
{isPlantProject && (
<div className="grid gap-2">
- <Label htmlFor="edit-vendorDocNumber">Vendor Document Number</Label>
+ <Label htmlFor="edit-vendorDocNumber">Project Document Number</Label>
<Input
id="edit-vendorDocNumber"
value={formData.vendorDocNumber}
onChange={(e) => setFormData({ ...formData, vendorDocNumber: e.target.value })}
- placeholder="Vendor provided document number"
+ placeholder="Project provided document number"
/>
</div>
)}