// lib/project-doc-template/template-detail-dialog.tsx "use client"; import * as React from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Badge } from "@/components/ui/badge"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { ProjectDocTemplateEditor } from "./project-doc-template-editor"; import { getProjectDocTemplateById } from "@/lib/project-doc-templates/service"; import type { ProjectDocTemplate } from "@/db/schema/project-doc-templates"; import { formatDateTime } from "@/lib/utils"; import { FileText, Clock, User, GitBranch, Variable } from "lucide-react"; interface TemplateDetailDialogProps { template: ProjectDocTemplate; open: boolean; onOpenChange: (open: boolean) => void; } export function TemplateDetailDialog({ template, open, onOpenChange, }: TemplateDetailDialogProps) { const [templateDetail, setTemplateDetail] = React.useState(null); const [isLoading, setIsLoading] = React.useState(true); // 템플릿 상세 정보 로드 React.useEffect(() => { if (open && template.id) { setIsLoading(true); getProjectDocTemplateById(template.id) .then(setTemplateDetail) .catch(console.error) .finally(() => setIsLoading(false)); } }, [open, template.id]); return (
{template.templateName}
v{template.version} {template.isLatest && 최신} {template.status}
문서 보기 버전 히스토리
{templateDetail?.versionHistory && templateDetail.versionHistory.length > 0 ? ( templateDetail.versionHistory.map((version: any) => (
버전 {version.version}
{version.isLatest && 최신} {version.id === template.id && 현재}

생성일: {formatDateTime(version.createdAt, "KR")}

생성자: {version.createdByName || '-'}

파일: {version.fileName}

)) ) : (

버전 히스토리가 없습니다.

)}
); }