diff --git a/frontend/src/components/ChatInterface.tsx b/frontend/src/components/ChatInterface.tsx index ae1ba3d..7338e90 100644 --- a/frontend/src/components/ChatInterface.tsx +++ b/frontend/src/components/ChatInterface.tsx @@ -1,10 +1,9 @@ import { useState, useRef, useEffect } from "react"; import { ScrollArea } from "@/components/ui/scroll-area"; -import { User, Loader2, ArrowUp, ChevronDown, Check, Square, Plus, Database, Wand2, Zap, CheckCircle2, Table, XCircle, Settings, ExternalLink, FileText, Download, Eye, Copy, Mic, X } from "lucide-react"; +import { User, Loader2, ArrowUp, ChevronDown, Check, Square, Plus, Database, Wand2, CheckCircle2, Table, XCircle, Settings, ExternalLink, FileText, Download, Eye, Copy, Mic, X } from "lucide-react"; import { api } from "@/lib/api"; import { type ChartSpec } from "@/store/visualizationStore"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; -import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "@/components/ui/command"; import { cn } from "@/lib/utils"; import ReactMarkdown from 'react-markdown'; import remarkGfm from 'remark-gfm'; @@ -1628,34 +1627,88 @@ export function ChatInterface() {
- {/* Left Column: Data Source */}
+
+ + {t('knowledgeBase')} +
+
+ {availableKnowledgeBases.length > 0 ? ( + availableKnowledgeBases.map((kb) => ( + + )) + ) : ( +
+ +

{t('noKnowledgeBases')}

+
+ )} + {selectedKnowledgeBaseId ? ( +
+ +
+ ) : null} +
+
+ +
{t('dataSource')}
- {availableDataSources.map((ds) => ( - - ))} - {selectedDataSource && ( + {availableDataSources.length > 0 ? ( + availableDataSources.map((ds) => ( + + )) + ) : ( +
+ +

{t('noDataSources')}

+
+ )} + {selectedDataSource ? (
- )} + ) : null}
-
-
- - {t('knowledgeBase')} -
-
- {availableKnowledgeBases.length > 0 ? ( - availableKnowledgeBases.map((kb) => ( - - )) - ) : ( -
- {t('noKnowledgeBases')} -
- )} - {selectedKnowledgeBaseId ? ( -
- -
- ) : null} -
-
-
- - {/* Right Column: Skills */} -
-
- - Skills -
-
- {availableSkills.length > 0 ? ( - availableSkills.map((skill) => { - const isSelected = selectedSkillIds.includes(skill.id); - return ( - - ); - }) - ) : ( -
- -

{t('noAvailableSkills')}

-
- )} -
- {selectedSkillIds.length > 0 && ( -
- -
- )}