| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import React, { useCallback } from 'react'
- import { useTranslation } from 'react-i18next'
- import { Button } from 'react-bootstrap'
- import PropTypes from 'prop-types'
- import * as eventTracking from '../../infrastructure/event-tracking'
- export default function StartFreeTrialButton({
- buttonStyle = 'info',
- children,
- classes = {},
- setStartedFreeTrial,
- source,
- }) {
- const { t } = useTranslation()
- const handleClick = useCallback(
- event => {
- event.preventDefault()
- eventTracking.send('subscription-funnel', 'upgraded-free-trial', source)
- const planCode = 'collaborator_free_trial_7_days'
- eventTracking.sendMB('subscription-start-trial', {
- source,
- plan: planCode,
- })
- if (setStartedFreeTrial) {
- setStartedFreeTrial(true)
- }
- const params = new URLSearchParams({
- planCode,
- ssp: 'true',
- itm_campaign: source,
- })
- window.open(`/user/subscription/new?${params}`)
- },
- [setStartedFreeTrial, source]
- )
- return (
- <Button
- bsStyle={buttonStyle}
- onClick={handleClick}
- className={classes.button}
- >
- {children || t('start_free_trial')}
- </Button>
- )
- }
- StartFreeTrialButton.propTypes = {
- buttonStyle: PropTypes.string,
- children: PropTypes.any,
- classes: PropTypes.shape({
- button: PropTypes.string.isRequired,
- }),
- setStartedFreeTrial: PropTypes.func,
- source: PropTypes.string.isRequired,
- }
|