11'use client' ;
22
3- import { Button } from "@/components/ui/button" ;
43import { Separator } from "@/components/ui/separator" ;
5- import { Tooltip , TooltipContent , TooltipTrigger } from "@/components/ui/tooltip" ;
64import { LanguageModelInfo , SearchScope } from "@/features/chat/types" ;
75import { RepositoryQuery , SearchContextQuery } from "@/lib/types" ;
8- import { AtSignIcon } from "lucide-react" ;
9- import { useCallback } from "react" ;
10- import { ReactEditor , useSlate } from "slate-react" ;
116import { useSelectedLanguageModel } from "../../useSelectedLanguageModel" ;
7+ import { AtMentionButton } from "./atMentionButton" ;
128import { LanguageModelSelector } from "./languageModelSelector" ;
139import { SearchScopeSelector } from "./searchScopeSelector" ;
14- import { SearchScopeInfoCard } from "@/features/chat/components/chatBox/searchScopeInfoCard" ;
15- import { AtMentionInfoCard } from "@/features/chat/components/chatBox/atMentionInfoCard" ;
1610
1711export interface ChatBoxToolbarProps {
1812 languageModels : LanguageModelInfo [ ] ;
@@ -33,67 +27,29 @@ export const ChatBoxToolbar = ({
3327 isContextSelectorOpen,
3428 onContextSelectorOpenChanged,
3529} : ChatBoxToolbarProps ) => {
36- const editor = useSlate ( ) ;
37-
38- const onAddContext = useCallback ( ( ) => {
39- editor . insertText ( "@" ) ;
40- ReactEditor . focus ( editor ) ;
41- } , [ editor ] ) ;
42-
4330 const { selectedLanguageModel, setSelectedLanguageModel } = useSelectedLanguageModel ( {
44- initialLanguageModel : languageModels . length > 0 ? languageModels [ 0 ] : undefined ,
31+ languageModels,
4532 } ) ;
4633
4734 return (
4835 < >
49- < Tooltip >
50- < TooltipTrigger asChild >
51- < Button
52- variant = "ghost"
53- size = "icon"
54- className = "w-6 h-6 text-muted-foreground hover:text-primary"
55- onClick = { onAddContext }
56- >
57- < AtSignIcon className = "w-4 h-4" />
58- </ Button >
59- </ TooltipTrigger >
60- < TooltipContent side = "bottom" className = "p-0 border-0 bg-transparent shadow-none" >
61- < AtMentionInfoCard />
62- </ TooltipContent >
63- </ Tooltip >
36+ < AtMentionButton />
6437 < Separator orientation = "vertical" className = "h-3 mx-1" />
65- < Tooltip >
66- < TooltipTrigger asChild >
67- < SearchScopeSelector
68- className = "bg-inherit w-fit h-6 min-h-6"
69- repos = { repos }
70- searchContexts = { searchContexts }
71- selectedSearchScopes = { selectedSearchScopes }
72- onSelectedSearchScopesChange = { onSelectedSearchScopesChange }
73- isOpen = { isContextSelectorOpen }
74- onOpenChanged = { onContextSelectorOpenChanged }
75- />
76- </ TooltipTrigger >
77- < TooltipContent side = "bottom" className = "p-0 border-0 bg-transparent shadow-none" >
78- < SearchScopeInfoCard />
79- </ TooltipContent >
80- </ Tooltip >
81- { languageModels . length > 0 && (
82- < >
83- < Separator orientation = "vertical" className = "h-3 ml-1 mr-2" />
84- < Tooltip >
85- < TooltipTrigger asChild >
86- < div >
87- < LanguageModelSelector
88- languageModels = { languageModels }
89- onSelectedModelChange = { setSelectedLanguageModel }
90- selectedModel = { selectedLanguageModel }
91- />
92- </ div >
93- </ TooltipTrigger >
94- </ Tooltip >
95- </ >
96- ) }
38+ < SearchScopeSelector
39+ className = "bg-inherit w-fit h-6 min-h-6"
40+ repos = { repos }
41+ searchContexts = { searchContexts }
42+ selectedSearchScopes = { selectedSearchScopes }
43+ onSelectedSearchScopesChange = { onSelectedSearchScopesChange }
44+ isOpen = { isContextSelectorOpen }
45+ onOpenChanged = { onContextSelectorOpenChanged }
46+ />
47+ < Separator orientation = "vertical" className = "h-3 ml-1 mr-2" />
48+ < LanguageModelSelector
49+ languageModels = { languageModels }
50+ onSelectedModelChange = { setSelectedLanguageModel }
51+ selectedModel = { selectedLanguageModel }
52+ />
9753 </ >
9854 )
9955}
0 commit comments