try-new-editor-button.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { useCallback } from 'react'
  2. import OLButton from '../../shared/components/ol/ol-button'
  3. import { useIdeRedesignSwitcherContext } from '../ide-react/context/ide-redesign-switcher-context'
  4. import { useTranslation } from 'react-i18next'
  5. import { canUseNewEditorAsExistingUser } from '../ide-redesign/utils/new-editor-utils'
  6. import { useSwitchEnableNewEditorState } from '../ide-redesign/hooks/use-switch-enable-new-editor-state'
  7. const TryNewEditorButton = () => {
  8. const { t } = useTranslation()
  9. const { setShowSwitcherModal } = useIdeRedesignSwitcherContext()
  10. const showModal = canUseNewEditorAsExistingUser()
  11. const { loading, setEditorRedesignStatus } = useSwitchEnableNewEditorState()
  12. const onClick = useCallback(() => {
  13. if (showModal) {
  14. setShowSwitcherModal(true)
  15. } else {
  16. setEditorRedesignStatus(true)
  17. }
  18. }, [setShowSwitcherModal, showModal, setEditorRedesignStatus])
  19. return (
  20. <div className="d-flex align-items-center">
  21. <OLButton
  22. className="toolbar-experiment-button"
  23. onClick={onClick}
  24. size="sm"
  25. variant="secondary"
  26. isLoading={loading}
  27. >
  28. {t('try_the_new_editor')}
  29. </OLButton>
  30. </div>
  31. )
  32. }
  33. export default TryNewEditorButton