import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { observer } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import injectSheet from 'react-jss'; import { H2, Loader } from '@meetfranz/ui'; import classnames from 'classnames'; import { Button } from '@meetfranz/forms'; import { FeatureItem } from '../ui/FeatureItem'; import { FeatureList } from '../ui/FeatureList'; const messages = defineMessages({ headline: { id: 'pricing.trial.headline', defaultMessage: '!!!Franz Professional', }, personalOffer: { id: 'pricing.trial.subheadline', defaultMessage: '!!!Your personal welcome offer:', }, noStringsAttachedHeadline: { id: 'pricing.trial.terms.headline', defaultMessage: '!!!No strings attached', }, noCreditCard: { id: 'pricing.trial.terms.noCreditCard', defaultMessage: '!!!No credit card required', }, automaticTrialEnd: { id: 'pricing.trial.terms.automaticTrialEnd', defaultMessage: '!!!Your free trial ends automatically after 14 days', }, activationError: { id: 'pricing.trial.error', defaultMessage: '!!!Sorry, we could not activate your trial!', }, ctaAccept: { id: 'pricing.trial.cta.accept', defaultMessage: '!!!Yes, upgrade my account to Franz Professional', }, ctaSkip: { id: 'pricing.trial.cta.skip', defaultMessage: '!!!Continue to Ferdi', }, featuresHeadline: { id: 'pricing.trial.features.headline', defaultMessage: '!!!Franz Professional includes:', }, }); const styles = theme => ({ container: { position: 'relative', marginLeft: -150, }, welcomeOffer: { textAlign: 'center', fontWeight: 'bold', }, keyTerms: { textAlign: 'center', }, content: { position: 'relative', zIndex: 20, }, featureContainer: { width: 300, position: 'absolute', left: 'calc(100% / 2 + 225px)', top: 155, background: theme.signup.pricing.feature.background, height: 'auto', padding: 20, borderTopRightRadius: theme.borderRadius, borderBottomRightRadius: theme.borderRadius, zIndex: 10, }, featureItem: { borderBottom: [1, 'solid', theme.signup.pricing.feature.border], }, cta: { marginTop: 40, width: '100%', }, skipLink: { textAlign: 'center', marginTop: 10, }, error: { margin: [20, 0, 0], color: theme.styleTypes.danger.accent, }, }); export default @observer @injectSheet(styles) class Signup extends Component { static propTypes = { onSubmit: PropTypes.func.isRequired, isLoadingRequiredData: PropTypes.bool.isRequired, isActivatingTrial: PropTypes.bool.isRequired, trialActivationError: PropTypes.bool.isRequired, classes: PropTypes.object.isRequired, }; static contextTypes = { intl: intlShape, }; render() { const { onSubmit, isLoadingRequiredData, isActivatingTrial, trialActivationError, classes, } = this.props; const { intl } = this.context; return (
{isLoadingRequiredData ? : ( )}

{intl.formatMessage(messages.personalOffer)}

{intl.formatMessage(messages.headline)}

We built Franz with a lot of effort, manpower and love, to boost up your messaging experience.

Get the free 14 day Franz Professional trial and see your communication evolving.

Thanks for being a hero.

Stefan Malzner

{intl.formatMessage(messages.noStringsAttachedHeadline)}

{trialActivationError && (

{intl.formatMessage(messages.activationError)}

)}

{intl.formatMessage(messages.featuresHeadline)}

{/* */}
); } }