From 524d55f46e3834a84db17945eaa1c65891f06547 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 8 Aug 2019 19:50:17 +0200 Subject: Add option to subscribe to trial via account dashboard --- .../settings/account/AccountDashboard.js | 114 +++++++++++++-------- 1 file changed, 74 insertions(+), 40 deletions(-) (limited to 'src/components/settings') diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 0366dc1ee..079d50380 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js @@ -1,14 +1,18 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import ReactTooltip from 'react-tooltip'; -import { ProBadge } from '@meetfranz/ui'; +import { + ProBadge, H2, H1, H3, +} from '@meetfranz/ui'; +import moment from 'moment'; import Loader from '../../ui/Loader'; import Button from '../../ui/Button'; import Infobox from '../../ui/Infobox'; import SubscriptionForm from '../../../containers/subscription/SubscriptionFormScreen'; +import { i18nPlanName } from '../../../helpers/plan-helpers'; const messages = defineMessages({ headline: { @@ -20,8 +24,8 @@ const messages = defineMessages({ defaultMessage: '!!!Your Subscription', }, headlineUpgrade: { - id: 'settings.account.headlineUpgrade', - defaultMessage: '!!!Upgrade your Account', + id: 'settings.account.headlineTrialUpgrade', + defaultMessage: '!!!Get the free 14 day Franz Professional Trial', }, headlineDangerZone: { id: 'settings.account.headlineDangerZone', @@ -71,6 +75,22 @@ const messages = defineMessages({ id: 'settings.account.deleteEmailSent', defaultMessage: '!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!', }, + trial: { + id: 'settings.account.trial', + defaultMessage: '!!!Free Trial', + }, + yourLicense: { + id: 'settings.account.yourLicense', + defaultMessage: '!!!Your license:', + }, + trialEndsIn: { + id: 'settings.account.trialEndsIn', + defaultMessage: '!!!Your free trial ends in {duration}.', + }, + trialUpdateBillingInformation: { + id: 'settings.account.trialUpdateBillingInfo', + defaultMessage: '!!!Please update your billing info to continue using {license} after your trial period.', + }, }); export default @observer class AccountDashboard extends Component { @@ -110,6 +130,13 @@ export default @observer class AccountDashboard extends Component { } = this.props; const { intl } = this.context; + let planName = ''; + + if (user.team && user.team.plan) { + planName = i18nPlanName(user.team.plan, intl); + console.log(planName); + } + return (
@@ -147,7 +174,7 @@ export default @observer class AccountDashboard extends Component { />
-

+

{`${user.firstname} ${user.lastname}`} {user.isPremium && ( <> @@ -156,7 +183,7 @@ export default @observer class AccountDashboard extends Component { {/* {intl.formatMessage(messages.accountTypePremium)} */} )} -

+

{user.organization && `${user.organization}, `} {user.email} @@ -197,54 +224,61 @@ export default @observer class AccountDashboard extends Component { {user.isSubscriptionOwner && (

-

- Your license: {user.team.plan} -

+

+ {intl.formatMessage(messages.yourLicense)} +

+

+ {planName} + {user.team.isTrial && ( + <> + {' – '} + {intl.formatMessage(messages.trial)} + + )} +

{user.team.isTrial && ( <>

- Trial ends in 14 days + {intl.formatMessage(messages.trialEndsIn, { + duration: moment.duration(moment().diff(user.team.trialEnd)).humanize(), + })} +

+

+ {intl.formatMessage(messages.trialUpdateBillingInformation, { + license: planName, + })}

)} - {user.isPremium && ( -
-
- )} +
+
)} - - )} - - {!user.isPremium && ( - isLoadingPlans ? ( - - ) : ( -
-
-

{intl.formatMessage(messages.headlineUpgrade)}

- + {!user.isPremium && ( +
+
+

{intl.formatMessage(messages.headlineUpgrade)}

+ +
-
- ) + )} + )}
-

{intl.formatMessage(messages.headlineDangerZone)}

+

{intl.formatMessage(messages.headlineDangerZone)}

{!isDeleteAccountSuccessful && (

{intl.formatMessage(messages.deleteInfo)}

-- cgit v1.2.3-70-g09d2