| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- import { Fragment } from 'react'
 
- import type { FC } from 'react'
 
- import { Popover, PopoverButton, PopoverPanel, Transition } from '@headlessui/react'
 
- import { useTranslation } from 'react-i18next'
 
- import {
 
-   RiCheckLine,
 
-   RiMoreFill,
 
- } from '@remixicon/react'
 
- import { PreferredProviderTypeEnum } from '../declarations'
 
- import Button from '@/app/components/base/button'
 
- import cn from '@/utils/classnames'
 
- type SelectorProps = {
 
-   value?: string
 
-   onSelect: (key: PreferredProviderTypeEnum) => void
 
- }
 
- const Selector: FC<SelectorProps> = ({
 
-   value,
 
-   onSelect,
 
- }) => {
 
-   const { t } = useTranslation()
 
-   const options = [
 
-     {
 
-       key: PreferredProviderTypeEnum.custom,
 
-       text: t('common.modelProvider.apiKey'),
 
-     },
 
-     {
 
-       key: PreferredProviderTypeEnum.system,
 
-       text: t('common.modelProvider.quota'),
 
-     },
 
-   ]
 
-   return (
 
-     <Popover className='relative'>
 
-       <PopoverButton as='div'>
 
-         {
 
-           ({ open }) => (
 
-             <Button className={cn(
 
-               'h-6 w-6 rounded-md px-0',
 
-               open && 'bg-components-button-secondary-bg-hover',
 
-             )}>
 
-               <RiMoreFill className='h-3 w-3' />
 
-             </Button>
 
-           )
 
-         }
 
-       </PopoverButton>
 
-       <Transition
 
-         as={Fragment}
 
-         leave='transition ease-in duration-100'
 
-         leaveFrom='opacity-100'
 
-         leaveTo='opacity-0'
 
-       >
 
-         <PopoverPanel className='absolute right-0 top-7 z-10 w-[144px] rounded-lg border-[0.5px] border-components-panel-border bg-components-panel-bg shadow-lg'>
 
-           <div className='p-1'>
 
-             <div className='px-3 pb-1 pt-2 text-sm font-medium text-text-secondary'>{t('common.modelProvider.card.priorityUse')}</div>
 
-             {
 
-               options.map(option => (
 
-                 <PopoverButton as={Fragment} key={option.key}>
 
-                   <div
 
-                     className='flex h-9 cursor-pointer items-center justify-between rounded-lg px-3 text-sm text-text-secondary hover:bg-components-panel-on-panel-item-bg-hover'
 
-                     onClick={() => onSelect(option.key)}
 
-                   >
 
-                     <div className='grow'>{option.text}</div>
 
-                     {value === option.key && <RiCheckLine className='h-4 w-4 text-text-accent' />}
 
-                   </div>
 
-                 </PopoverButton>
 
-               ))
 
-             }
 
-           </div>
 
-         </PopoverPanel>
 
-       </Transition>
 
-     </Popover>
 
-   )
 
- }
 
- export default Selector
 
 
  |