From 55f833c6e5cdbc9679795699433065afb7046d5b Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 16:13:52 +0200 Subject: Update text --- src/i18n/locales/en-US.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 1ba91bdfa..16f4bff46 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -2,12 +2,12 @@ "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", "feature.announcements.changelog.headline": "Changes in Franz {version}", - "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", + "feature.delayApp.headline": "Upgrade your Franz plan to skip the wait", "feature.delayApp.text": "Franz will continue in {seconds} seconds.", "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort": "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline": "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action": "Get a Franz Supporter License", + "feature.delayApp.trial.headline": "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action": "Upgrade Franz", "feature.delayApp.upgrade.actionShort": "Upgrade account", "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", "feature.planSelection.cta.stayOnFree": "Stay on Free", -- cgit v1.2.3-70-g09d2 From 8c194bb9c5423fb9b44d11609dae72ac8497eb85 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 16:54:59 +0200 Subject: add space --- src/components/settings/account/AccountDashboard.js | 1 + src/i18n/locales/en-US.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/i18n') diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 9a1b31d0f..776a8fd08 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js @@ -218,6 +218,7 @@ class AccountDashboard extends Component {

Franz + {' '} {isPremiumOverrideUser ? 'Premium' : planName} {user.team.isTrial && ( <> diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 16f4bff46..ce35c29a8 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -422,4 +422,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 066dd3639676c07ed61f9d8eb3f1a1f85cae9db4 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 22:05:07 +0200 Subject: polishing --- src/features/delayApp/Component.js | 2 +- src/i18n/messages/src/features/delayApp/Component.json | 2 +- src/styles/settings.scss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/i18n') diff --git a/src/features/delayApp/Component.js b/src/features/delayApp/Component.js index 6344edb89..fcc27c75c 100644 --- a/src/features/delayApp/Component.js +++ b/src/features/delayApp/Component.js @@ -24,7 +24,7 @@ const messages = defineMessages({ }, action: { id: 'feature.delayApp.upgrade.action', - defaultMessage: '!!!Get a Franz Supporter License', + defaultMessage: '!!!Upgrade Franz', }, actionTrial: { id: 'feature.delayApp.trial.action', diff --git a/src/i18n/messages/src/features/delayApp/Component.json b/src/i18n/messages/src/features/delayApp/Component.json index 0d345a47b..f6bf9369a 100644 --- a/src/i18n/messages/src/features/delayApp/Component.json +++ b/src/i18n/messages/src/features/delayApp/Component.json @@ -27,7 +27,7 @@ }, { "id": "feature.delayApp.upgrade.action", - "defaultMessage": "!!!Get a Franz Supporter License", + "defaultMessage": "!!!Upgrade Franz", "file": "src/features/delayApp/Component.js", "start": { "line": 25, diff --git a/src/styles/settings.scss b/src/styles/settings.scss index bb95ab5d2..150d58e76 100644 --- a/src/styles/settings.scss +++ b/src/styles/settings.scss @@ -366,7 +366,7 @@ .account__subscription-button { margin-left: auto; } .franz-form__button { white-space: nowrap; } div { height: auto; } - [data-type="franz-button"] div { height: 100% } + [data-type="franz-button"] div { height: 20px } .invoices { width: 100%; -- cgit v1.2.3-70-g09d2 From 800ef0bad64d21e2f4c93221f984dafe6fee7bec Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 22:09:50 +0200 Subject: Update defaultMessages.json --- src/i18n/locales/defaultMessages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 98f37cf8a..cd876c0ea 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -3868,7 +3868,7 @@ } }, { - "defaultMessage": "!!!Get a Franz Supporter License", + "defaultMessage": "!!!Upgrade Franz", "end": { "column": 3, "line": 28 -- cgit v1.2.3-70-g09d2 From ab78d8ad9097ce92eae337f319245819ba93ca40 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 17 Oct 2019 10:58:45 +0200 Subject: polishing --- packages/theme/src/themes/default/index.ts | 9 +++++---- src/containers/settings/AccountScreen.js | 9 ++++++--- src/features/planSelection/components/PlanSelection.js | 4 +++- src/i18n/locales/en-US.json | 4 ++-- .../src/features/planSelection/components/PlanSelection.json | 2 +- 5 files changed, 17 insertions(+), 11 deletions(-) (limited to 'src/i18n') diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index b484d9972..3decec88f 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -1,6 +1,7 @@ import color from 'color'; import { cloneDeep } from 'lodash'; +import { darkgreen } from 'color-name'; import * as legacyStyles from '../legacy'; export interface IStyleTypes { @@ -224,7 +225,7 @@ export const signup = { // Todos export const todos = { todosLayer: { - borderLeftColor: legacyStyles.themeGrayLighter, + borderLeftColor: color(legacyStyles.themeGrayLighter).darken(0.1).hex(), }, toggleButton: { background: styleTypes.primary.accent, @@ -242,10 +243,10 @@ export const todos = { // TrialStatusBar export const trialStatusBar = { bar: { - background: legacyStyles.themeGray, + background: legacyStyles.themeGrayLightest, }, progressBar: { - background: legacyStyles.themeGrayLight, - progressIndicator: legacyStyles.themeGrayLighter, + background: color(legacyStyles.themeGrayLighter).darken(0.1).hex(), + progressIndicator: legacyStyles.themeGrayLight, }, }; diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js index b08b52e6f..88ecd55d5 100644 --- a/src/containers/settings/AccountScreen.js +++ b/src/containers/settings/AccountScreen.js @@ -35,12 +35,15 @@ export default @inject('stores', 'actions') @observer class AccountScreen extend render() { const { user, payment, features } = this.props.stores; - const { user: userActions } = this.props.actions; + const { + user: userActions, + payment: paymentActions, + } = this.props.actions; const isLoadingUserInfo = user.getUserInfoRequest.isExecuting; const isLoadingPlans = payment.plansRequest.isExecuting; - const { upgradeAccount } = payment; + const { upgradeAccount } = paymentActions; return ( @@ -57,7 +60,7 @@ export default @inject('stores', 'actions') @observer class AccountScreen extend isLoadingDeleteAccount={user.deleteAccountRequest.isExecuting} isDeleteAccountSuccessful={user.deleteAccountRequest.wasExecuted && !user.deleteAccountRequest.isError} openEditAccount={() => this.handleWebsiteLink('/user/profile')} - upgradeToPro={() => upgradeAccount({ planId: features.features.pricingConfig.pro.yearly.id })} + upgradeToPro={() => upgradeAccount({ planId: features.features.pricingConfig.plans.pro.yearly.id })} openBilling={() => this.handleWebsiteLink('/user/billing')} openInvoices={() => this.handleWebsiteLink('/user/invoices')} /> diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js index cf4474114..9407f6dd3 100644 --- a/src/features/planSelection/components/PlanSelection.js +++ b/src/features/planSelection/components/PlanSelection.js @@ -16,7 +16,7 @@ import Appear from '../../../components/ui/effects/Appear'; const messages = defineMessages({ welcome: { id: 'feature.planSelection.fullscreen.welcome', - defaultMessage: '!!!Welcome back, {name}', + defaultMessage: '!!!Are you ready to choose, {name}', }, subheadline: { id: 'feature.planSelection.fullscreen.subheadline', @@ -83,6 +83,7 @@ const styles = theme => ({ '& h1, & h2': { textAlign: 'center', + color: theme.styleTypes.primary.contrast, }, }, plans: { @@ -111,6 +112,7 @@ const styles = theme => ({ '& svg': { width: '80px !important', filter: 'drop-shadow( 0px 2px 3px rgba(0, 0, 0, 0.3))', + fill: theme.styleTypes.danger.contrast, }, }, headline: { diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index ce35c29a8..8af42554b 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title": "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline": "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome": "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome": "Are you ready to choose, {name}?", "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -422,4 +422,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json index 76f4ed50b..2e66c8dfe 100644 --- a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json +++ b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json @@ -1,7 +1,7 @@ [ { "id": "feature.planSelection.fullscreen.welcome", - "defaultMessage": "!!!Welcome back, {name}", + "defaultMessage": "!!!Are you ready to choose, {name}", "file": "src/features/planSelection/components/PlanSelection.js", "start": { "line": 17, -- cgit v1.2.3-70-g09d2 From b6276bd0cb88ce681bc35a6fc7b1ae0cf6ac56ea Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 17 Oct 2019 14:12:36 +0200 Subject: optimize trial signup flow --- src/actions/user.js | 4 +- src/api/server/ServerApi.js | 2 +- src/components/auth/Pricing.js | 92 +++++++++++++++------ src/containers/auth/PricingScreen.js | 17 ++-- src/containers/auth/SignupScreen.js | 22 ++++- src/i18n/locales/defaultMessages.json | 94 +++++++++++++++++----- src/i18n/locales/en-US.json | 6 +- src/i18n/messages/src/components/auth/Pricing.json | 81 ++++++++++++++----- src/stores/FeaturesStore.js | 1 + src/stores/UserStore.js | 4 +- 10 files changed, 245 insertions(+), 78 deletions(-) (limited to 'src/i18n') diff --git a/src/actions/user.js b/src/actions/user.js index 5d7d9a899..7061a367a 100644 --- a/src/actions/user.js +++ b/src/actions/user.js @@ -11,8 +11,10 @@ export default { lastname: PropTypes.string.isRequired, email: PropTypes.string.isRequired, password: PropTypes.string.isRequired, - accountType: PropTypes.string.isRequired, + accountType: PropTypes.string, company: PropTypes.string, + plan: PropTypes.string, + currency: PropTypes.string, }, retrievePassword: { email: PropTypes.string.isRequired, diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index f56c7b6e4..1f538368d 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js @@ -87,7 +87,7 @@ export default class ServerApi { } const trial = await request.json(); - debug('ServerApi::signup resolves', trial); + debug('ServerApi::activateTrial resolves', trial); return true; } diff --git a/src/components/auth/Pricing.js b/src/components/auth/Pricing.js index 67af04470..86b6a4263 100644 --- a/src/components/auth/Pricing.js +++ b/src/components/auth/Pricing.js @@ -13,12 +13,20 @@ import { FeatureList } from '../ui/FeatureList'; const messages = defineMessages({ headline: { - id: 'pricing.trial.headline', - defaultMessage: '!!!Franz Professional', + id: 'pricing.trial.headline.pro', + defaultMessage: '!!!Hi {name}, welcome to Franz', }, - personalOffer: { - id: 'pricing.trial.subheadline', - defaultMessage: '!!!Here\'s a special welcome for you:', + specialTreat: { + id: 'pricing.trial.intro.specialTreat', + defaultMessage: '!!!We have a special treat for you.', + }, + tryPro: { + id: 'pricing.trial.intro.tryPro', + defaultMessage: '!!!Enjoy the full Franz Professional experience completely free for 14 days.', + }, + happyMessaging: { + id: 'pricing.trial.intro.happyMessaging', + defaultMessage: '!!!Happy messaging,', }, noStringsAttachedHeadline: { id: 'pricing.trial.terms.headline', @@ -44,6 +52,10 @@ const messages = defineMessages({ id: 'pricing.trial.cta.accept', defaultMessage: '!!!Start my 14-day Franz Professional Trial ', }, + ctaStart: { + id: 'pricing.trial.cta.start', + defaultMessage: '!!!Start using Franz', + }, ctaSkip: { id: 'pricing.trial.cta.skip', defaultMessage: '!!!Continue to Franz', @@ -98,6 +110,34 @@ const styles = theme => ({ margin: [20, 0, 0], color: theme.styleTypes.danger.accent, }, + priceContainer: { + display: 'flex', + justifyContent: 'space-evenly', + margin: [10, 0, 15], + }, + price: { + '& sup': { + verticalAlign: 14, + fontSize: 20, + }, + }, + figure: { + fontSize: 40, + }, + regularPrice: { + position: 'relative', + + '&:before': { + content: '" "', + position: 'absolute', + width: '130%', + height: 1, + top: 14, + left: -12, + borderBottom: [3, 'solid', 'red'], + transform: 'rotateZ(-20deg)', + }, + }, }); export default @observer @injectSheet(styles) class Signup extends Component { @@ -129,6 +169,8 @@ export default @observer @injectSheet(styles) class Signup extends Component { } = this.props; const { intl } = this.context; + const [intPart, fractionPart] = (price).toString().split('.'); + return (
@@ -140,25 +182,39 @@ export default @observer @injectSheet(styles) class Signup extends Component { alt="" /> )} -

{intl.formatMessage(messages.personalOffer)}

-

{intl.formatMessage(messages.headline)}

+

{intl.formatMessage(messages.headline, { name: 'Stefan' })}

- We built Franz with a lot of effort, manpower and love, - to boost up your messaging experience. + {intl.formatMessage(messages.specialTreat)}

- For the next 14 days, we are going to give you the full Franz Professional experience so you can watch your communication evolve! + {intl.formatMessage(messages.tryPro)}

- Thanks for being a hero. + {intl.formatMessage(messages.happyMessaging)}

Stefan Malzner

+
+

+ + {currency} + {intPart} + + {fractionPart} +

+

+ + {currency} + 0 + + 00 +

+

{intl.formatMessage(messages.noStringsAttachedHeadline)} @@ -179,7 +235,7 @@ export default @observer @injectSheet(styles) class Signup extends Component {

{intl.formatMessage(messages.activationError)}

)}

- {/*
    - - - - - - - - - - -
*/}
diff --git a/src/containers/auth/PricingScreen.js b/src/containers/auth/PricingScreen.js index ff378bd8b..55811ed23 100644 --- a/src/containers/auth/PricingScreen.js +++ b/src/containers/auth/PricingScreen.js @@ -20,14 +20,19 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend } = this.props; const { activateTrialRequest } = stores.user; - const { defaultTrialPlan } = stores.features.features; + const { defaultTrialPlan, canSkipTrial } = stores.features.anonymousFeatures; - actions.user.activateTrial({ planId: defaultTrialPlan }); - await activateTrialRequest._promise; - - if (!activateTrialRequest.isError) { + if (!canSkipTrial) { stores.router.push('/'); stores.user.hasCompletedSignup = true; + } else { + actions.user.activateTrial({ planId: defaultTrialPlan }); + await activateTrialRequest._promise; + + if (!activateTrialRequest.isError) { + stores.router.push('/'); + stores.user.hasCompletedSignup = true; + } } } @@ -43,7 +48,7 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend const { pricingConfig } = features; let currency = '$'; - let price = '5.99'; + let price = 5.99; if (pricingConfig) { ({ currency } = pricingConfig); ({ price } = pricingConfig.plans.pro.yearly); diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js index efc7ea4c1..f93498be2 100644 --- a/src/containers/auth/SignupScreen.js +++ b/src/containers/auth/SignupScreen.js @@ -4,6 +4,7 @@ import { inject, observer } from 'mobx-react'; import Signup from '../../components/auth/Signup'; import UserStore from '../../stores/UserStore'; +import FeaturesStore from '../../stores/FeaturesStore'; import { globalError as globalErrorPropType } from '../../prop-types'; @@ -12,11 +13,27 @@ export default @inject('stores', 'actions') @observer class SignupScreen extends error: globalErrorPropType.isRequired, }; + onSignup(values) { + const { actions, stores } = this.props; + + const { canSkipTrial, defaultTrialPlan, pricingConfig } = stores.features.anonymousFeatures; + + if (!canSkipTrial) { + Object.assign(values, { + plan: defaultTrialPlan, + currency: pricingConfig.currencyID, + }); + } + + actions.user.signup(values); + } + render() { - const { actions, stores, error } = this.props; + const { stores, error } = this.props; + return ( this.onSignup(values)} isSubmitting={stores.user.signupRequest.isExecuting} loginRoute={stores.user.loginRoute} error={error} @@ -33,5 +50,6 @@ SignupScreen.wrappedComponent.propTypes = { }).isRequired, stores: PropTypes.shape({ user: PropTypes.instanceOf(UserStore).isRequired, + features: PropTypes.instanceOf(FeaturesStore).isRequired, }).isRequired, }; diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index cd876c0ea..e46c69d67 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -417,133 +417,185 @@ { "descriptors": [ { - "defaultMessage": "!!!Franz Professional", + "defaultMessage": "!!!Hi {name}, welcome to Franz", "end": { "column": 3, "line": 18 }, "file": "src/components/auth/Pricing.js", - "id": "pricing.trial.headline", + "id": "pricing.trial.headline.pro", "start": { "column": 12, "line": 15 } }, { - "defaultMessage": "!!!Here's a special welcome for you:", + "defaultMessage": "!!!We have a special treat for you.", "end": { "column": 3, "line": 22 }, "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.intro.specialTreat", + "start": { + "column": 16, + "line": 19 + } + }, + { + "defaultMessage": "!!!Try out the full Franz Professional experience completely free for 14 days.", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.intro.tryPro", + "start": { + "column": 10, + "line": 23 + } + }, + { + "defaultMessage": "!!!Happy messaging,", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.intro.happyMessaging", + "start": { + "column": 18, + "line": 27 + } + }, + { + "defaultMessage": "!!!Here's a special welcome for you:", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/components/auth/Pricing.js", "id": "pricing.trial.subheadline", "start": { "column": 17, - "line": 19 + "line": 31 } }, { "defaultMessage": "!!!No strings attached", "end": { "column": 3, - "line": 26 + "line": 38 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.headline", "start": { "column": 29, - "line": 23 + "line": 35 } }, { "defaultMessage": "!!!No credit card required", "end": { "column": 3, - "line": 30 + "line": 42 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.noCreditCard", "start": { "column": 16, - "line": 27 + "line": 39 } }, { "defaultMessage": "!!!Your free trial ends automatically after 14 days", "end": { "column": 3, - "line": 34 + "line": 46 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.automaticTrialEnd", "start": { "column": 21, - "line": 31 + "line": 43 } }, { "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", "end": { "column": 3, - "line": 38 + "line": 50 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.trialWorth", "start": { "column": 14, - "line": 35 + "line": 47 } }, { "defaultMessage": "!!!Sorry, we could not activate your trial!", "end": { "column": 3, - "line": 42 + "line": 54 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.error", "start": { "column": 19, - "line": 39 + "line": 51 } }, { "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "end": { "column": 3, - "line": 46 + "line": 58 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.accept", "start": { "column": 13, - "line": 43 + "line": 55 + } + }, + { + "defaultMessage": "!!!Start using Franz", + "end": { + "column": 3, + "line": 62 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.cta.start", + "start": { + "column": 12, + "line": 59 } }, { "defaultMessage": "!!!Continue to Franz", "end": { "column": 3, - "line": 50 + "line": 66 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.skip", "start": { "column": 11, - "line": 47 + "line": 63 } }, { "defaultMessage": "!!!Franz Professional includes:", "end": { "column": 3, - "line": 54 + "line": 70 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.features.headline", "start": { "column": 20, - "line": 51 + "line": 67 } } ], @@ -3956,7 +4008,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Welcome back, {name}", + "defaultMessage": "!!!Are you ready to choose, {name}", "end": { "column": 3, "line": 20 diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 8af42554b..6b0aebb13 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -170,9 +170,13 @@ "pricing.plan.pro-yearly": "Professional Yearly", "pricing.trial.cta.accept": "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip": "Continue to Franz", + "pricing.trial.cta.start": "Start using Franz", "pricing.trial.error": "Sorry, we could not activate your trial!", "pricing.trial.features.headline": "Franz Professional includes:", - "pricing.trial.headline": "Franz Professional", + "pricing.trial.headline.pro": "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging": "Happy messaging,", + "pricing.trial.intro.specialTreat": "We have a special treat for you.", + "pricing.trial.intro.tryPro": "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.subheadline": "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline": "No strings attached", diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json index 3f0cf4e86..6db39148c 100644 --- a/src/i18n/messages/src/components/auth/Pricing.json +++ b/src/i18n/messages/src/components/auth/Pricing.json @@ -1,7 +1,7 @@ [ { - "id": "pricing.trial.headline", - "defaultMessage": "!!!Franz Professional", + "id": "pricing.trial.headline.pro", + "defaultMessage": "!!!Hi {name}, welcome to Franz", "file": "src/components/auth/Pricing.js", "start": { "line": 15, @@ -13,28 +13,54 @@ } }, { - "id": "pricing.trial.subheadline", - "defaultMessage": "!!!Here's a special welcome for you:", + "id": "pricing.trial.intro.specialTreat", + "defaultMessage": "!!!We have a special treat for you.", "file": "src/components/auth/Pricing.js", "start": { "line": 19, - "column": 17 + "column": 16 }, "end": { "line": 22, "column": 3 } }, + { + "id": "pricing.trial.intro.tryPro", + "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 23, + "column": 10 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "pricing.trial.intro.happyMessaging", + "defaultMessage": "!!!Happy messaging,", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 27, + "column": 18 + }, + "end": { + "line": 30, + "column": 3 + } + }, { "id": "pricing.trial.terms.headline", "defaultMessage": "!!!No strings attached", "file": "src/components/auth/Pricing.js", "start": { - "line": 23, + "line": 31, "column": 29 }, "end": { - "line": 26, + "line": 34, "column": 3 } }, @@ -43,11 +69,11 @@ "defaultMessage": "!!!No credit card required", "file": "src/components/auth/Pricing.js", "start": { - "line": 27, + "line": 35, "column": 16 }, "end": { - "line": 30, + "line": 38, "column": 3 } }, @@ -56,11 +82,11 @@ "defaultMessage": "!!!Your free trial ends automatically after 14 days", "file": "src/components/auth/Pricing.js", "start": { - "line": 31, + "line": 39, "column": 21 }, "end": { - "line": 34, + "line": 42, "column": 3 } }, @@ -69,11 +95,11 @@ "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", "file": "src/components/auth/Pricing.js", "start": { - "line": 35, + "line": 43, "column": 14 }, "end": { - "line": 38, + "line": 46, "column": 3 } }, @@ -82,11 +108,11 @@ "defaultMessage": "!!!Sorry, we could not activate your trial!", "file": "src/components/auth/Pricing.js", "start": { - "line": 39, + "line": 47, "column": 19 }, "end": { - "line": 42, + "line": 50, "column": 3 } }, @@ -95,11 +121,24 @@ "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "file": "src/components/auth/Pricing.js", "start": { - "line": 43, + "line": 51, "column": 13 }, "end": { - "line": 46, + "line": 54, + "column": 3 + } + }, + { + "id": "pricing.trial.cta.start", + "defaultMessage": "!!!Start using Franz", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 55, + "column": 12 + }, + "end": { + "line": 58, "column": 3 } }, @@ -108,11 +147,11 @@ "defaultMessage": "!!!Continue to Franz", "file": "src/components/auth/Pricing.js", "start": { - "line": 47, + "line": 59, "column": 11 }, "end": { - "line": 50, + "line": 62, "column": 3 } }, @@ -121,11 +160,11 @@ "defaultMessage": "!!!Franz Professional includes:", "file": "src/components/auth/Pricing.js", "start": { - "line": 51, + "line": 63, "column": 20 }, "end": { - "line": 54, + "line": 66, "column": 3 } } diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 5d379fd3e..adbd401b4 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js @@ -67,6 +67,7 @@ export default class FeaturesStore extends Store { if (this.stores.user.isLoggedIn) { this.featuresRequest.invalidate({ immediately: true }); } else { + this.defaultFeaturesRequest.execute(); this.defaultFeaturesRequest.invalidate({ immediately: true }); } } diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 735e8f886..297ea1121 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js @@ -205,7 +205,7 @@ export default class UserStore extends Store { } @action async _signup({ - firstname, lastname, email, password, accountType, company, + firstname, lastname, email, password, accountType, company, plan, currency, }) { const authToken = await this.signupRequest.execute({ firstname, @@ -215,6 +215,8 @@ export default class UserStore extends Store { accountType, company, locale: this.stores.app.locale, + plan, + currency, }); this.hasCompletedSignup = false; -- cgit v1.2.3-70-g09d2 From 501790b55625a59831e369ed263f14c72164fa70 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 17 Oct 2019 14:14:24 +0200 Subject: update strings --- src/i18n/locales/defaultMessages.json | 51 +++++++++++++---------------------- src/i18n/locales/en-US.json | 3 +-- 2 files changed, 20 insertions(+), 34 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index e46c69d67..e283614d2 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -443,7 +443,7 @@ } }, { - "defaultMessage": "!!!Try out the full Franz Professional experience completely free for 14 days.", + "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", "end": { "column": 3, "line": 26 @@ -468,134 +468,121 @@ "line": 27 } }, - { - "defaultMessage": "!!!Here's a special welcome for you:", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/components/auth/Pricing.js", - "id": "pricing.trial.subheadline", - "start": { - "column": 17, - "line": 31 - } - }, { "defaultMessage": "!!!No strings attached", "end": { "column": 3, - "line": 38 + "line": 34 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.headline", "start": { "column": 29, - "line": 35 + "line": 31 } }, { "defaultMessage": "!!!No credit card required", "end": { "column": 3, - "line": 42 + "line": 38 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.noCreditCard", "start": { "column": 16, - "line": 39 + "line": 35 } }, { "defaultMessage": "!!!Your free trial ends automatically after 14 days", "end": { "column": 3, - "line": 46 + "line": 42 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.automaticTrialEnd", "start": { "column": 21, - "line": 43 + "line": 39 } }, { "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", "end": { "column": 3, - "line": 50 + "line": 46 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.trialWorth", "start": { "column": 14, - "line": 47 + "line": 43 } }, { "defaultMessage": "!!!Sorry, we could not activate your trial!", "end": { "column": 3, - "line": 54 + "line": 50 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.error", "start": { "column": 19, - "line": 51 + "line": 47 } }, { "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "end": { "column": 3, - "line": 58 + "line": 54 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.accept", "start": { "column": 13, - "line": 55 + "line": 51 } }, { "defaultMessage": "!!!Start using Franz", "end": { "column": 3, - "line": 62 + "line": 58 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.start", "start": { "column": 12, - "line": 59 + "line": 55 } }, { "defaultMessage": "!!!Continue to Franz", "end": { "column": 3, - "line": 66 + "line": 62 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.skip", "start": { "column": 11, - "line": 63 + "line": 59 } }, { "defaultMessage": "!!!Franz Professional includes:", "end": { "column": 3, - "line": 70 + "line": 66 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.features.headline", "start": { "column": 20, - "line": 67 + "line": 63 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 6b0aebb13..8bef09d4d 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -177,7 +177,6 @@ "pricing.trial.intro.happyMessaging": "Happy messaging,", "pricing.trial.intro.specialTreat": "We have a special treat for you.", "pricing.trial.intro.tryPro": "Enjoy the full Franz Professional experience completely free for 14 days.", - "pricing.trial.subheadline": "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline": "No strings attached", "pricing.trial.terms.noCreditCard": "No credit card required", @@ -426,4 +425,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file -- cgit v1.2.3-70-g09d2