diff --git a/packages/ui/src/components/chat/ChatContainer.tsx b/packages/ui/src/components/chat/ChatContainer.tsx index 4a5cf80b..cd202f93 100644 --- a/packages/ui/src/components/chat/ChatContainer.tsx +++ b/packages/ui/src/components/chat/ChatContainer.tsx @@ -14,6 +14,7 @@ import ScrollToBottomButton from './components/ScrollToBottomButton'; import { ScrollShadow } from '@/components/ui/ScrollShadow'; import { useChatScrollManager, type AnimationHandlers, type ContentChangeReason } from '@/hooks/useChatScrollManager'; import { useChatTimelineController } from './hooks/useChatTimelineController'; +import { TimelineDialog } from './TimelineDialog'; import { useChatTurnNavigation } from './hooks/useChatTurnNavigation'; import { useDeviceInfo } from '@/lib/device'; import { Button } from '@/components/ui/button'; @@ -342,6 +343,8 @@ export const ChatContainer: React.FC = () => { const isExpandedInput = useUIStore((state) => state.isExpandedInput); const stickyUserHeader = useUIStore((state) => state.stickyUserHeader); const chatRenderMode = useUIStore((state) => state.chatRenderMode); + const isTimelineDialogOpen = useUIStore((s) => s.isTimelineDialogOpen); + const setTimelineDialogOpen = useUIStore((s) => s.setTimelineDialogOpen); // Streaming state const streamingMessageId = useStreamingStore( @@ -958,19 +961,27 @@ export const ChatContainer: React.FC = () => {
- {preview || t('chat.timeline.noTextContent')} - {preview && preview.length >= 80 && '…'} +
+ {snippet ?? (preview || t('chat.timeline.noTextContent'))} + {!snippet && preview && preview.length >= 80 && '…'}