upgrade-button.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { useTranslation } from 'react-i18next'
  2. import * as eventTracking from '../../../../infrastructure/event-tracking'
  3. import OLButton from '@/shared/components/ol/ol-button'
  4. import { useFeatureFlag } from '@/shared/context/split-test-context'
  5. export default function UpgradeButton({
  6. className = '',
  7. referrer = 'editor-header-upgrade-prompt',
  8. source = 'code-editor',
  9. }: {
  10. className?: string
  11. referrer?: string
  12. source?: string
  13. }) {
  14. const { t } = useTranslation()
  15. const plans2026 = useFeatureFlag('plans-2026-phase-1')
  16. function handleClick() {
  17. eventTracking.send('subscription-funnel', source, 'upgrade')
  18. eventTracking.sendMB('upgrade-button-click', { source })
  19. }
  20. return (
  21. <div className="ide-redesign-toolbar-button-container">
  22. <OLButton
  23. variant="premium"
  24. size="sm"
  25. href={
  26. plans2026
  27. ? `/user/subscription/choose-your-plan?itm_referrer=${referrer}&paywall-type=${source}`
  28. : `/user/subscription/plans?itm_referrer=${referrer}`
  29. }
  30. target="_blank"
  31. rel="noreferrer"
  32. onClick={handleClick}
  33. className={className}
  34. >
  35. {t('upgrade')}
  36. </OLButton>
  37. </div>
  38. )
  39. }