index.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. 'use client'
  2. import type { FC } from 'react'
  3. import React from 'react'
  4. import { useTranslation } from 'react-i18next'
  5. import {
  6. RiQuestionLine,
  7. } from '@remixicon/react'
  8. import { useContext } from 'use-context-selector'
  9. import Panel from '../base/feature-panel'
  10. import ParamConfig from './param-config'
  11. import Tooltip from '@/app/components/base/tooltip'
  12. import Switch from '@/app/components/base/switch'
  13. import { Eye } from '@/app/components/base/icons/src/vender/solid/general'
  14. import ConfigContext from '@/context/debug-configuration'
  15. const ConfigVision: FC = () => {
  16. const { t } = useTranslation()
  17. const {
  18. isShowVisionConfig,
  19. visionConfig,
  20. setVisionConfig,
  21. } = useContext(ConfigContext)
  22. if (!isShowVisionConfig)
  23. return null
  24. return (<>
  25. <Panel
  26. className="mt-4"
  27. headerIcon={
  28. <Eye className='w-4 h-4 text-[#6938EF]'/>
  29. }
  30. title={
  31. <div className='flex items-center'>
  32. <div className='mr-1'>{t('appDebug.vision.name')}</div>
  33. <Tooltip htmlContent={<div className='w-[180px]' >
  34. {t('appDebug.vision.description')}
  35. </div>} selector='config-vision-tooltip'>
  36. <RiQuestionLine className='w-[14px] h-[14px] text-gray-400' />
  37. </Tooltip>
  38. </div>
  39. }
  40. headerRight={
  41. <div className='flex items-center'>
  42. <ParamConfig />
  43. <div className='ml-4 mr-3 w-[1px] h-3.5 bg-gray-200'></div>
  44. <Switch
  45. defaultValue={visionConfig.enabled}
  46. onChange={value => setVisionConfig({
  47. ...visionConfig,
  48. enabled: value,
  49. })}
  50. size='md'
  51. />
  52. </div>
  53. }
  54. noBodySpacing
  55. />
  56. </>
  57. )
  58. }
  59. export default React.memo(ConfigVision)