try-new-editor-button.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { useCallback, useRef } from 'react'
  2. import OLButton from '../ui/components/ol/ol-button'
  3. import { useIdeRedesignSwitcherContext } from '../ide-react/context/ide-redesign-switcher-context'
  4. import MaterialIcon from '@/shared/components/material-icon'
  5. import { useTranslation } from 'react-i18next'
  6. import TooltipPromotion from '../ide-redesign/components/tooltip-promo'
  7. import { useFeatureFlag } from '@/shared/context/split-test-context'
  8. const TUTORIAL_KEY = 'try-redesign-again-nudge-promo'
  9. const EVENT_DATA = { name: 'try-redesign-again-nudge-promotion' }
  10. const TryNewEditorButton = () => {
  11. const { t } = useTranslation()
  12. const { setShowSwitcherModal } = useIdeRedesignSwitcherContext()
  13. const showNudge = useFeatureFlag('ide-redesign-experiment-nudge')
  14. const switcherButtonRef = useRef(null)
  15. const onClick = useCallback(() => {
  16. setShowSwitcherModal(true)
  17. }, [setShowSwitcherModal])
  18. return (
  19. <div className="d-flex align-items-center">
  20. <OLButton
  21. className="toolbar-experiment-button"
  22. onClick={onClick}
  23. size="sm"
  24. leadingIcon={<MaterialIcon type="experiment" unfilled />}
  25. variant="secondary"
  26. ref={switcherButtonRef}
  27. >
  28. {t('try_the_new_editor')}
  29. </OLButton>
  30. {showNudge && (
  31. <TooltipPromotion
  32. target={switcherButtonRef.current}
  33. tutorialKey={TUTORIAL_KEY}
  34. eventData={EVENT_DATA}
  35. className="toolbar-experiment-tooltip"
  36. header={t('dont_miss_out_on_the_updated_editor')}
  37. content={t(
  38. 'weve_been_making_changes_and_improvements_why_not_give_it_a_try'
  39. )}
  40. />
  41. )}
  42. </div>
  43. )
  44. }
  45. export default TryNewEditorButton