Skip to content

Commit 9a1a7ae

Browse files
committed
Dropdown for citations added
1 parent 2a09e10 commit 9a1a7ae

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

src/components/ChatInterface.tsx

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { useState, useRef, useEffect } from 'react';
2-
import { Send, Loader2, Lightbulb } from 'lucide-react';
2+
import { Send, Loader2, Lightbulb, ChevronRight } from 'lucide-react';
33
import { Button } from '@/components/ui/button';
44
import { Textarea } from '@/components/ui/textarea';
55
import { ScrollArea } from '@/components/ui/scroll-area';
66
import { Card } from '@/components/ui/card';
77
import { Badge } from '@/components/ui/badge';
8+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';
89
import { Message } from '@/types/chat';
910
import { sendChatMessage, sendChatMessageStream } from '@/services/api';
1011
import { useSettings } from '@/hooks/use-settings';
@@ -198,16 +199,28 @@ export function ChatInterface({ onCitationClick }: ChatInterfaceProps) {
198199
{message.citations && message.citations.length > 0 && (
199200
<div className="mt-3 pt-3 border-t border-border/50">
200201
<p className="text-xs font-medium mb-2 opacity-70">Citations:</p>
201-
<div className="flex flex-wrap gap-2">
202+
<div className="space-y-2">
202203
{message.citations.map((citation, idx) => (
203-
<Badge
204-
key={idx}
205-
variant="secondary"
206-
className="cursor-pointer hover:bg-secondary/80 transition-colors"
207-
onClick={() => onCitationClick(citation.page + 4, citation.position)}
208-
>
209-
Page {citation.page + 4}: {citation.text}
210-
</Badge>
204+
<Collapsible key={idx} className="border rounded-md">
205+
<CollapsibleTrigger className="w-full flex items-center justify-between p-2 hover:bg-secondary/50 transition-colors rounded-t-md [&[data-state=open]>div>svg]:rotate-90">
206+
<div className="flex items-center gap-2">
207+
<ChevronRight className="h-4 w-4 transition-transform duration-200" />
208+
<Badge
209+
variant="secondary"
210+
className="cursor-pointer"
211+
onClick={(e) => {
212+
e.stopPropagation();
213+
onCitationClick(citation.page + 4, citation.position);
214+
}}
215+
>
216+
Page {citation.page + 4}
217+
</Badge>
218+
</div>
219+
</CollapsibleTrigger>
220+
<CollapsibleContent className="px-4 pb-2 pt-1">
221+
<p className="text-sm text-muted-foreground">{citation.text}</p>
222+
</CollapsibleContent>
223+
</Collapsible>
211224
))}
212225
</div>
213226
</div>

0 commit comments

Comments
 (0)