model-trigger.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import type { FC } from 'react'
  2. import type {
  3. Model,
  4. ModelItem,
  5. } from '../declarations'
  6. import ModelIcon from '../model-icon'
  7. import ModelName from '../model-name'
  8. // import { AlertTriangle } from '@/app/components/base/icons/src/vender/solid/alertsAndFeedback'
  9. import { ChevronDown } from '@/app/components/base/icons/src/vender/line/arrows'
  10. type ModelTriggerProps = {
  11. open: boolean
  12. provider: Model
  13. model: ModelItem
  14. className?: string
  15. }
  16. const ModelTrigger: FC<ModelTriggerProps> = ({
  17. open,
  18. provider,
  19. model,
  20. className,
  21. }) => {
  22. return (
  23. <div
  24. className={`
  25. group flex items-center px-2 h-8 rounded-lg bg-gray-100 hover:bg-gray-200 cursor-pointer
  26. ${className}
  27. ${open && '!bg-gray-200'}
  28. `}
  29. >
  30. <ModelIcon
  31. className='shrink-0 mr-1.5'
  32. provider={provider}
  33. modelName={model.model}
  34. />
  35. <ModelName
  36. className='grow'
  37. modelItem={model}
  38. showMode
  39. showFeatures
  40. />
  41. <div className='shrink-0 flex items-center justify-center w-4 h-4'>
  42. <ChevronDown
  43. className='w-3.5 h-3.5 text-gray-500'
  44. />
  45. </div>
  46. </div>
  47. )
  48. }
  49. export default ModelTrigger