feat(聊天页面): 集成对话分享功能

- 引入 ShareModal 组件
- 添加分享按钮点击事件处理
- 支持分享预览跳转
This commit is contained in:
gaoziman 2025-12-24 15:59:27 +08:00
parent 2acce36dbd
commit 56cd968219

View File

@ -12,6 +12,7 @@ import { SaveToNoteModal } from '@/components/features/SaveToNoteModal';
import { PromptOptimizer } from '@/components/features/PromptOptimizer';
import { LinkPreviewModal } from '@/components/features/LinkPreviewModal';
import { ExportDropdown } from '@/components/features/ExportDropdown';
import { ShareModal } from '@/components/features/ShareModal';
import { cn } from '@/lib/utils';
import { useConversation, useConversations } from '@/hooks/useConversations';
import { useStreamChat, type ChatMessage } from '@/hooks/useStreamChat';
@ -53,6 +54,9 @@ export default function ChatPage({ params }: PageProps) {
const [linkPreviewOpen, setLinkPreviewOpen] = useState(false);
const [linkPreviewUrl, setLinkPreviewUrl] = useState<string | null>(null);
// 分享弹窗状态
const [shareModalOpen, setShareModalOpen] = useState(false);
// 获取数据
const { conversation, loading: conversationLoading, error: conversationError } = useConversation(chatId);
const { createConversation, updateConversation, deleteConversation } = useConversations();
@ -498,6 +502,7 @@ export default function ChatPage({ params }: PageProps) {
)}
<button
onClick={() => setShareModalOpen(true)}
className="flex items-center gap-2 px-3 py-1.5 text-sm text-[var(--color-text-secondary)] hover:bg-[var(--color-bg-hover)] rounded-lg transition-colors"
title="分享对话"
>
@ -646,6 +651,16 @@ export default function ChatPage({ params }: PageProps) {
onClose={() => setLinkPreviewOpen(false)}
/>
{/* 分享弹窗 */}
<ShareModal
isOpen={shareModalOpen}
onClose={() => setShareModalOpen(false)}
conversationId={chatId}
conversationTitle={conversation?.title || '新对话'}
messages={messages.map(m => ({ id: m.id, role: m.role, content: m.content }))}
onPreview={handleLinkClick}
/>
{/* 提示词优化工具浮动按钮 */}
<PromptOptimizer onUsePrompt={setOptimizedPrompt} />
</div>