File size: 1,628 Bytes
bbe4eea |
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 |
'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>
</>
)
}
|