import { useParams, useNavigate, Link } from 'react-router-dom'; import { useDocument, useDocumentAnalysis, useAnalyzeDocument } from '@/hooks/useDocuments'; import { Button } from '@/components/Button'; import { Card } from '@/components/Card'; import { ArrowLeft, FileText, Sparkles, Tag, FolderOpen, Trash2, Edit2, CheckSquare } from 'lucide-react'; import { useState, useEffect } from 'react'; export default function DocumentDetailPage() { const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); const { data: document, isLoading: docLoading, error: docError } = useDocument(id || ''); const { data: analysis, isLoading: analysisLoading } = useDocumentAnalysis(id || ''); const analyzeMutation = useAnalyzeDocument(); const [isEditing, setIsEditing] = useState(false); const [editedTitle, setEditedTitle] = useState(''); const [editedContent, setEditedContent] = useState(''); useEffect(() => { if (document) { setEditedTitle(document.title || ''); setEditedContent(document.content); } }, [document]); const handleAnalyze = async () => { if (!id) return; try { await analyzeMutation.mutateAsync({ id }); } catch (err: any) { alert(err.message || 'AI 分析失败'); } }; const handleSave = () => { // TODO: 实现保存功能 setIsEditing(false); }; if (docLoading) { return (
加载中...
); } if (docError || !document) { return (

文档不存在或无权访问

); } return (
{/* 头部导航 */}

文档详情

{/* 文档内容卡片 */}
{/* 标题和操作栏 */}
{isEditing ? ( setEditedTitle(e.target.value)} className="flex-1 mr-4 px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500" placeholder="文档标题" /> ) : (

{document.title || '无标题'}

)}
{isEditing ? ( <> ) : ( <> )}
{/* 文档内容 */} {isEditing ? (