| 'use client' |
|
|
| import * as React from 'react' |
| import { |
| Select, |
| SelectTrigger, |
| SelectValue, |
| SelectContent, |
| SelectItem |
| } from '@/components/ui/select' |
| import { useStore } from '@/store' |
| import { useQueryState } from 'nuqs' |
| import useChatActions from '@/hooks/useChatActions' |
|
|
| export function ModeSelector() { |
| const { mode, setMode, setMessages, setSelectedModel } = useStore() |
| const { clearChat } = useChatActions() |
| const [, setAgentId] = useQueryState('agent') |
| const [, setTeamId] = useQueryState('team') |
| const [, setSessionId] = useQueryState('session') |
|
|
| const handleModeChange = (newMode: 'agent' | 'team') => { |
| if (newMode === mode) return |
|
|
| setMode(newMode) |
|
|
| setAgentId(null) |
| setTeamId(null) |
| setSelectedModel('') |
| setMessages([]) |
| setSessionId(null) |
| clearChat() |
| } |
|
|
| return ( |
| <> |
| <Select |
| defaultValue={mode} |
| value={mode} |
| onValueChange={(value) => handleModeChange(value as 'agent' | 'team')} |
| > |
| <SelectTrigger className="h-9 w-full rounded-xl border border-primary/15 bg-primaryAccent text-xs font-medium uppercase"> |
| <SelectValue /> |
| </SelectTrigger> |
| <SelectContent className="border-none bg-primaryAccent font-dmmono shadow-lg"> |
| <SelectItem value="agent" className="cursor-pointer"> |
| <div className="text-xs font-medium uppercase">Agent</div> |
| </SelectItem> |
| |
| <SelectItem value="team" className="cursor-pointer"> |
| <div className="text-xs font-medium uppercase">Team</div> |
| </SelectItem> |
| </SelectContent> |
| </Select> |
| </> |
| ) |
| } |
|
|