display-toggle.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import React, { type FC } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import { RiLineHeight } from '@remixicon/react'
  4. import Tooltip from '@/app/components/base/tooltip'
  5. import { Collapse } from '@/app/components/base/icons/src/public/knowledge'
  6. type DisplayToggleProps = {
  7. isCollapsed: boolean
  8. toggleCollapsed: () => void
  9. }
  10. const DisplayToggle: FC<DisplayToggleProps> = ({
  11. isCollapsed,
  12. toggleCollapsed,
  13. }) => {
  14. const { t } = useTranslation()
  15. return (
  16. <Tooltip
  17. popupContent={isCollapsed ? t('datasetDocuments.segment.expandChunks') : t('datasetDocuments.segment.collapseChunks')}
  18. popupClassName='text-text-secondary system-xs-medium border-[0.5px] border-components-panel-border'
  19. >
  20. <button
  21. type='button'
  22. className='flex items-center justify-center rounded-lg border-[0.5px] border-components-button-secondary-border
  23. bg-components-button-secondary-bg p-2 shadow-xs shadow-shadow-shadow-3 backdrop-blur-[5px]'
  24. onClick={toggleCollapsed}
  25. >
  26. {
  27. isCollapsed
  28. ? <RiLineHeight className='h-4 w-4 text-components-button-secondary-text' />
  29. : <Collapse className='h-4 w-4 text-components-button-secondary-text' />
  30. }
  31. </button>
  32. </Tooltip>
  33. )
  34. }
  35. export default React.memo(DisplayToggle)