aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/ui
diff options
context:
space:
mode:
authorLibravatar vantezzen <hello@vantezzen.io>2019-10-24 15:15:42 +0200
committerLibravatar vantezzen <hello@vantezzen.io>2019-10-24 15:15:42 +0200
commit54f8b191a94bd78a85b046bbf21dd2245d3a6f3e (patch)
treeada5876f0e8a697ba4693bba07f5e0f31fea1fc9 /src/components/ui
parentUpdate submodules (diff)
parentbump version to 5.4.0 (diff)
downloadferdium-app-54f8b191a94bd78a85b046bbf21dd2245d3a6f3e.tar.gz
ferdium-app-54f8b191a94bd78a85b046bbf21dd2245d3a6f3e.tar.zst
ferdium-app-54f8b191a94bd78a85b046bbf21dd2245d3a6f3e.zip
Merge https://github.com/meetfranz/franz into franz-5.4.0-release
Diffstat (limited to 'src/components/ui')
-rw-r--r--src/components/ui/FeatureItem.js1
-rw-r--r--src/components/ui/FeatureList.js74
-rw-r--r--src/components/ui/PremiumFeatureContainer/index.js2
3 files changed, 66 insertions, 11 deletions
diff --git a/src/components/ui/FeatureItem.js b/src/components/ui/FeatureItem.js
index 7c482c4d4..4926df470 100644
--- a/src/components/ui/FeatureItem.js
+++ b/src/components/ui/FeatureItem.js
@@ -10,6 +10,7 @@ const styles = theme => ({
10 padding: [8, 0], 10 padding: [8, 0],
11 display: 'flex', 11 display: 'flex',
12 alignItems: 'center', 12 alignItems: 'center',
13 textAlign: 'left',
13 }, 14 },
14 featureIcon: { 15 featureIcon: {
15 fill: theme.brandSuccess, 16 fill: theme.brandSuccess,
diff --git a/src/components/ui/FeatureList.js b/src/components/ui/FeatureList.js
index 62944ad75..7ba8b54d7 100644
--- a/src/components/ui/FeatureList.js
+++ b/src/components/ui/FeatureList.js
@@ -3,12 +3,33 @@ import PropTypes from 'prop-types';
3import { defineMessages, intlShape } from 'react-intl'; 3import { defineMessages, intlShape } from 'react-intl';
4 4
5import { FeatureItem } from './FeatureItem'; 5import { FeatureItem } from './FeatureItem';
6import { PLANS } from '../../config';
6 7
7const messages = defineMessages({ 8const messages = defineMessages({
9 availableRecipes: {
10 id: 'pricing.features.recipes',
11 defaultMessage: '!!!Choose from more than 70 Services',
12 },
13 accountSync: {
14 id: 'pricing.features.accountSync',
15 defaultMessage: '!!!Account Synchronisation',
16 },
17 desktopNotifications: {
18 id: 'pricing.features.desktopNotifications',
19 defaultMessage: '!!!Desktop Notifications',
20 },
8 unlimitedServices: { 21 unlimitedServices: {
9 id: 'pricing.features.unlimitedServices', 22 id: 'pricing.features.unlimitedServices',
10 defaultMessage: '!!!Add unlimited services', 23 defaultMessage: '!!!Add unlimited services',
11 }, 24 },
25 upToThreeServices: {
26 id: 'pricing.features.upToThreeServices',
27 defaultMessage: '!!!Add up to 3 services',
28 },
29 upToSixServices: {
30 id: 'pricing.features.upToSixServices',
31 defaultMessage: '!!!Add up to 6 services',
32 },
12 spellchecker: { 33 spellchecker: {
13 id: 'pricing.features.spellchecker', 34 id: 'pricing.features.spellchecker',
14 defaultMessage: '!!!Spellchecker support', 35 defaultMessage: '!!!Spellchecker support',
@@ -51,11 +72,13 @@ export class FeatureList extends Component {
51 static propTypes = { 72 static propTypes = {
52 className: PropTypes.string, 73 className: PropTypes.string,
53 featureClassName: PropTypes.string, 74 featureClassName: PropTypes.string,
75 plan: PropTypes.oneOf(PLANS),
54 }; 76 };
55 77
56 static defaultProps = { 78 static defaultProps = {
57 className: '', 79 className: '',
58 featureClassName: '', 80 featureClassName: '',
81 plan: false,
59 } 82 }
60 83
61 static contextTypes = { 84 static contextTypes = {
@@ -66,21 +89,52 @@ export class FeatureList extends Component {
66 const { 89 const {
67 className, 90 className,
68 featureClassName, 91 featureClassName,
92 plan,
69 } = this.props; 93 } = this.props;
70 const { intl } = this.context; 94 const { intl } = this.context;
71 95
96 const features = [];
97 if (plan === PLANS.FREE) {
98 features.push(
99 messages.upToThreeServices,
100 messages.availableRecipes,
101 messages.accountSync,
102 messages.desktopNotifications,
103 );
104 } else if (plan === PLANS.PERSONAL) {
105 features.push(
106 messages.upToSixServices,
107 messages.spellchecker,
108 messages.appDelays,
109 messages.adFree,
110 );
111 } else if (plan === PLANS.PRO) {
112 features.push(
113 messages.unlimitedServices,
114 messages.workspaces,
115 messages.customWebsites,
116 // messages.onPremise,
117 messages.thirdPartyServices,
118 // messages.serviceProxies,
119 );
120 } else {
121 features.push(
122 messages.unlimitedServices,
123 messages.spellchecker,
124 messages.workspaces,
125 messages.customWebsites,
126 messages.onPremise,
127 messages.thirdPartyServices,
128 messages.serviceProxies,
129 messages.teamManagement,
130 messages.appDelays,
131 messages.adFree,
132 );
133 }
134
72 return ( 135 return (
73 <ul className={className}> 136 <ul className={className}>
74 <FeatureItem name={intl.formatMessage(messages.unlimitedServices)} className={featureClassName} /> 137 {features.map(feature => <FeatureItem name={intl.formatMessage(feature)} className={featureClassName} />)}
75 <FeatureItem name={intl.formatMessage(messages.spellchecker)} className={featureClassName} />
76 <FeatureItem name={intl.formatMessage(messages.workspaces)} className={featureClassName} />
77 <FeatureItem name={intl.formatMessage(messages.customWebsites)} className={featureClassName} />
78 <FeatureItem name={intl.formatMessage(messages.onPremise)} className={featureClassName} />
79 <FeatureItem name={intl.formatMessage(messages.thirdPartyServices)} className={featureClassName} />
80 <FeatureItem name={intl.formatMessage(messages.serviceProxies)} className={featureClassName} />
81 <FeatureItem name={intl.formatMessage(messages.teamManagement)} className={featureClassName} />
82 <FeatureItem name={intl.formatMessage(messages.appDelays)} className={featureClassName} />
83 <FeatureItem name={intl.formatMessage(messages.adFree)} className={featureClassName} />
84 </ul> 138 </ul>
85 ); 139 );
86 } 140 }
diff --git a/src/components/ui/PremiumFeatureContainer/index.js b/src/components/ui/PremiumFeatureContainer/index.js
index 7ba353be3..611c50468 100644
--- a/src/components/ui/PremiumFeatureContainer/index.js
+++ b/src/components/ui/PremiumFeatureContainer/index.js
@@ -90,7 +90,7 @@ PremiumFeatureContainer.wrappedComponent.propTypes = {
90 children: oneOrManyChildElements.isRequired, 90 children: oneOrManyChildElements.isRequired,
91 stores: PropTypes.shape({ 91 stores: PropTypes.shape({
92 user: PropTypes.instanceOf(UserStore).isRequired, 92 user: PropTypes.instanceOf(UserStore).isRequired,
93 features: PropTypes.instanceOf(FeatureStore).isRequired, 93 features: PropTypes.instanceOf(FeaturesStore).isRequired,
94 }).isRequired, 94 }).isRequired,
95 actions: PropTypes.shape({ 95 actions: PropTypes.shape({
96 ui: PropTypes.shape({ 96 ui: PropTypes.shape({