aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/services/content/Services.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/services/content/Services.js')
-rw-r--r--src/components/services/content/Services.js55
1 files changed, 49 insertions, 6 deletions
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js
index b6291666b..80f17d8f2 100644
--- a/src/components/services/content/Services.js
+++ b/src/components/services/content/Services.js
@@ -1,6 +1,6 @@
1import React, { Component } from 'react'; 1import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; 3import { observer, PropTypes as MobxPropTypes, inject } from 'mobx-react';
4import { Link } from 'react-router'; 4import { Link } from 'react-router';
5import { defineMessages, intlShape } from 'react-intl'; 5import { defineMessages, intlShape } from 'react-intl';
6import Confetti from 'react-confetti'; 6import Confetti from 'react-confetti';
@@ -9,16 +9,29 @@ import injectSheet from 'react-jss';
9 9
10import ServiceView from './ServiceView'; 10import ServiceView from './ServiceView';
11import Appear from '../../ui/effects/Appear'; 11import Appear from '../../ui/effects/Appear';
12import serverlessLogin from '../../../helpers/serverless-helpers';
12 13
13const messages = defineMessages({ 14const messages = defineMessages({
14 welcome: { 15 welcome: {
15 id: 'services.welcome', 16 id: 'services.welcome',
16 defaultMessage: '!!!Welcome to Franz', 17 defaultMessage: '!!!Welcome to Ferdi',
17 }, 18 },
18 getStarted: { 19 getStarted: {
19 id: 'services.getStarted', 20 id: 'services.getStarted',
20 defaultMessage: '!!!Get started', 21 defaultMessage: '!!!Get started',
21 }, 22 },
23 login: {
24 id: 'services.login',
25 defaultMessage: '!!!Please login to use Ferdi.',
26 },
27 serverless: {
28 id: 'services.serverless',
29 defaultMessage: '!!!Use Ferdi without an Account',
30 },
31 serverInfo: {
32 id: 'services.serverInfo',
33 defaultMessage: '!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.',
34 },
22}); 35});
23 36
24 37
@@ -31,7 +44,7 @@ const styles = {
31 }, 44 },
32}; 45};
33 46
34export default @observer @injectSheet(styles) class Services extends Component { 47export default @injectSheet(styles) @inject('actions') @observer class Services extends Component {
35 static propTypes = { 48 static propTypes = {
36 services: MobxPropTypes.arrayOrObservableArray, 49 services: MobxPropTypes.arrayOrObservableArray,
37 setWebviewReference: PropTypes.func.isRequired, 50 setWebviewReference: PropTypes.func.isRequired,
@@ -44,6 +57,7 @@ export default @observer @injectSheet(styles) class Services extends Component {
44 userHasCompletedSignup: PropTypes.bool.isRequired, 57 userHasCompletedSignup: PropTypes.bool.isRequired,
45 hasActivatedTrial: PropTypes.bool.isRequired, 58 hasActivatedTrial: PropTypes.bool.isRequired,
46 classes: PropTypes.object.isRequired, 59 classes: PropTypes.object.isRequired,
60 actions: PropTypes.object.isRequired,
47 }; 61 };
48 62
49 static defaultProps = { 63 static defaultProps = {
@@ -60,6 +74,12 @@ export default @observer @injectSheet(styles) class Services extends Component {
60 74
61 _confettiTimeout = null; 75 _confettiTimeout = null;
62 76
77 constructor(props) {
78 super(props);
79
80 this.useLocalServer = this.useLocalServer.bind(this);
81 }
82
63 componentDidMount() { 83 componentDidMount() {
64 this._confettiTimeout = window.setTimeout(() => { 84 this._confettiTimeout = window.setTimeout(() => {
65 this.setState({ 85 this.setState({
@@ -74,6 +94,10 @@ export default @observer @injectSheet(styles) class Services extends Component {
74 } 94 }
75 } 95 }
76 96
97 useLocalServer() {
98 serverlessLogin(this.props.actions);
99 }
100
77 render() { 101 render() {
78 const { 102 const {
79 services, 103 services,
@@ -94,6 +118,7 @@ export default @observer @injectSheet(styles) class Services extends Component {
94 } = this.state; 118 } = this.state;
95 119
96 const { intl } = this.context; 120 const { intl } = this.context;
121 const isLoggedIn = Boolean(localStorage.getItem('authToken'));
97 122
98 return ( 123 return (
99 <div className="services"> 124 <div className="services">
@@ -112,15 +137,33 @@ export default @observer @injectSheet(styles) class Services extends Component {
112 transitionName="slideUp" 137 transitionName="slideUp"
113 > 138 >
114 <div className="services__no-service"> 139 <div className="services__no-service">
115 <img src="./assets/images/logo.svg" alt="" /> 140 <img src="./assets/images/logo.svg" alt="Logo" style={{ maxHeight: '50vh' }} />
116 <h1>{intl.formatMessage(messages.welcome)}</h1> 141 <h1>{intl.formatMessage(messages.welcome)}</h1>
142 { !isLoggedIn && (
143 <>
144 <p>{intl.formatMessage(messages.login)}</p>
145 <p>{intl.formatMessage(messages.serverInfo)}</p>
146 </>
147 ) }
117 <Appear 148 <Appear
118 timeout={300} 149 timeout={300}
119 transitionName="slideUp" 150 transitionName="slideUp"
120 > 151 >
121 <Link to="/settings/recipes" className="button"> 152 <Link to={isLoggedIn ? '/settings/services' : '/auth/welcome'} className="button">
122 {intl.formatMessage(messages.getStarted)} 153 { isLoggedIn ? intl.formatMessage(messages.getStarted) : 'Login' }
123 </Link> 154 </Link>
155 {!isLoggedIn && (
156 <button
157 type="button"
158 className="button"
159 style={{
160 marginLeft: 10,
161 }}
162 onClick={this.useLocalServer}
163 >
164 {intl.formatMessage(messages.serverless)}
165 </button>
166 )}
124 </Appear> 167 </Appear>
125 </div> 168 </div>
126 </Appear> 169 </Appear>