-
Notifications
You must be signed in to change notification settings - Fork 307
Expand file tree
/
Copy pathchatBoxToolbar.tsx
More file actions
74 lines (70 loc) · 2.9 KB
/
Copy pathchatBoxToolbar.tsx
File metadata and controls
74 lines (70 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
'use client';
import { Separator } from "@/components/ui/separator";
import { LanguageModelInfo, SearchScope } from "@/features/chat/types";
import { RepositoryQuery, SearchContextQuery } from "@/lib/types";
import { useSelectedLanguageModel } from "../../useSelectedLanguageModel";
import { AtMentionButton } from "./atMentionButton";
import { ChatBoxPlusButton } from "./chatBoxPlusButton";
import { LanguageModelSelector } from "./languageModelSelector";
import { SearchScopeSelector } from "./searchScopeSelector";
export interface ChatBoxToolbarProps {
languageModels: LanguageModelInfo[];
repos: RepositoryQuery[];
searchContexts: SearchContextQuery[];
selectedSearchScopes: SearchScope[];
onSelectedSearchScopesChange: (items: SearchScope[]) => void;
isContextSelectorOpen: boolean;
onContextSelectorOpenChanged: (isOpen: boolean) => void;
disabledMcpServerIds?: string[];
onDisabledMcpServerIdsChange?: (ids: string[]) => void;
isAuthenticated: boolean;
}
export const ChatBoxToolbar = ({
languageModels,
repos,
searchContexts,
selectedSearchScopes,
onSelectedSearchScopesChange,
isContextSelectorOpen,
onContextSelectorOpenChanged,
disabledMcpServerIds,
onDisabledMcpServerIdsChange,
isAuthenticated,
}: ChatBoxToolbarProps) => {
const { selectedLanguageModel, setSelectedLanguageModel } = useSelectedLanguageModel({
languageModels,
});
return (
<>
{disabledMcpServerIds !== undefined && onDisabledMcpServerIdsChange !== undefined && (
<>
<ChatBoxPlusButton
selectedSearchScopes={selectedSearchScopes}
onSelectedSearchScopesChange={onSelectedSearchScopesChange}
disabledMcpServerIds={disabledMcpServerIds}
onDisabledMcpServerIdsChange={onDisabledMcpServerIdsChange}
isAuthenticated={isAuthenticated}
/>
<Separator orientation="vertical" className="h-3 mx-1" />
</>
)}
<AtMentionButton />
<Separator orientation="vertical" className="h-3 mx-1" />
<SearchScopeSelector
className="bg-inherit w-fit h-6 min-h-6"
repos={repos}
searchContexts={searchContexts}
selectedSearchScopes={selectedSearchScopes}
onSelectedSearchScopesChange={onSelectedSearchScopesChange}
isOpen={isContextSelectorOpen}
onOpenChanged={onContextSelectorOpenChanged}
/>
<Separator orientation="vertical" className="h-3 ml-1 mr-2" />
<LanguageModelSelector
languageModels={languageModels}
onSelectedModelChange={setSelectedLanguageModel}
selectedModel={selectedLanguageModel}
/>
</>
)
}