editor-expand-button.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { useCallback, useMemo } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import { Button } from 'react-bootstrap'
  4. import Tooltip from '../../../shared/components/tooltip'
  5. import Icon from '../../../shared/components/icon'
  6. import { useLayoutContext } from '../../../shared/context/layout-context'
  7. function EditorExpandButton() {
  8. const { pdfLayout, changeLayout, detachRole } = useLayoutContext()
  9. const { t } = useTranslation()
  10. const text = useMemo(() => {
  11. return pdfLayout === 'sideBySide' ? t('full_screen') : t('split_screen')
  12. }, [pdfLayout, t])
  13. const switchEditorLayout = useCallback(() => {
  14. const newLayout = pdfLayout === 'sideBySide' ? 'flat' : 'sideBySide'
  15. changeLayout(newLayout, 'editor')
  16. }, [pdfLayout, changeLayout])
  17. if (detachRole) {
  18. return null
  19. }
  20. return (
  21. <Tooltip
  22. id="expand-editor-btn"
  23. description={text}
  24. overlayProps={{ placement: 'left' }}
  25. >
  26. <Button
  27. onClick={switchEditorLayout}
  28. className="toolbar-editor-expand-btn toolbar-item"
  29. aria-label={text}
  30. >
  31. <Icon type={pdfLayout === 'sideBySide' ? 'expand' : 'compress'} />
  32. </Button>
  33. </Tooltip>
  34. )
  35. }
  36. export default EditorExpandButton