feat(聊天页面): 集成对话分享功能
- 引入 ShareModal 组件 - 添加分享按钮点击事件处理 - 支持分享预览跳转
This commit is contained in:
parent
2acce36dbd
commit
56cd968219
@ -12,6 +12,7 @@ import { SaveToNoteModal } from '@/components/features/SaveToNoteModal';
|
|||||||
import { PromptOptimizer } from '@/components/features/PromptOptimizer';
|
import { PromptOptimizer } from '@/components/features/PromptOptimizer';
|
||||||
import { LinkPreviewModal } from '@/components/features/LinkPreviewModal';
|
import { LinkPreviewModal } from '@/components/features/LinkPreviewModal';
|
||||||
import { ExportDropdown } from '@/components/features/ExportDropdown';
|
import { ExportDropdown } from '@/components/features/ExportDropdown';
|
||||||
|
import { ShareModal } from '@/components/features/ShareModal';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import { useConversation, useConversations } from '@/hooks/useConversations';
|
import { useConversation, useConversations } from '@/hooks/useConversations';
|
||||||
import { useStreamChat, type ChatMessage } from '@/hooks/useStreamChat';
|
import { useStreamChat, type ChatMessage } from '@/hooks/useStreamChat';
|
||||||
@ -53,6 +54,9 @@ export default function ChatPage({ params }: PageProps) {
|
|||||||
const [linkPreviewOpen, setLinkPreviewOpen] = useState(false);
|
const [linkPreviewOpen, setLinkPreviewOpen] = useState(false);
|
||||||
const [linkPreviewUrl, setLinkPreviewUrl] = useState<string | null>(null);
|
const [linkPreviewUrl, setLinkPreviewUrl] = useState<string | null>(null);
|
||||||
|
|
||||||
|
// 分享弹窗状态
|
||||||
|
const [shareModalOpen, setShareModalOpen] = useState(false);
|
||||||
|
|
||||||
// 获取数据
|
// 获取数据
|
||||||
const { conversation, loading: conversationLoading, error: conversationError } = useConversation(chatId);
|
const { conversation, loading: conversationLoading, error: conversationError } = useConversation(chatId);
|
||||||
const { createConversation, updateConversation, deleteConversation } = useConversations();
|
const { createConversation, updateConversation, deleteConversation } = useConversations();
|
||||||
@ -498,6 +502,7 @@ export default function ChatPage({ params }: PageProps) {
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
<button
|
<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"
|
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="分享对话"
|
title="分享对话"
|
||||||
>
|
>
|
||||||
@ -646,6 +651,16 @@ export default function ChatPage({ params }: PageProps) {
|
|||||||
onClose={() => setLinkPreviewOpen(false)}
|
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} />
|
<PromptOptimizer onUsePrompt={setOptimizedPrompt} />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user