aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2018-12-09 01:01:12 +0100
committerLibravatar Stefan Malzner <stefan@adlk.io>2018-12-09 01:01:12 +0100
commitf01957203f77fce8b65d5e034a8acd68f1e0ae2e (patch)
tree2f8d0d232266cdc7ed74e1913b270527f46bb33d /src
parentAdd dark mode styles to content tabs (diff)
downloadferdium-app-f01957203f77fce8b65d5e034a8acd68f1e0ae2e.tar.gz
ferdium-app-f01957203f77fce8b65d5e034a8acd68f1e0ae2e.tar.zst
ferdium-app-f01957203f77fce8b65d5e034a8acd68f1e0ae2e.zip
Upgrade to react 16
TODO: add componentDidCatch
Diffstat (limited to 'src')
-rw-r--r--src/components/auth/AuthLayout.js21
-rw-r--r--src/components/auth/Invite.js6
-rw-r--r--src/components/auth/Login.js3
-rw-r--r--src/components/services/tabs/Tabbar.js2
-rw-r--r--src/components/settings/account/AccountDashboard.js44
-rw-r--r--src/components/settings/services/EditServiceForm.js14
-rw-r--r--src/components/settings/services/ServicesDashboard.js20
-rw-r--r--src/components/settings/settings/EditSettingsForm.js6
-rw-r--r--src/components/subscription/SubscriptionForm.js46
-rw-r--r--src/components/ui/FullscreenLoader/index.js34
-rw-r--r--src/components/ui/ImageUpload.js6
-rw-r--r--src/components/ui/Tabs/TabItem.js4
-rw-r--r--src/features/serviceProxy/index.js5
-rw-r--r--src/stores/SettingsStore.js15
-rw-r--r--src/styles/auth.scss14
-rw-r--r--src/styles/welcome.scss5
16 files changed, 112 insertions, 133 deletions
diff --git a/src/components/auth/AuthLayout.js b/src/components/auth/AuthLayout.js
index 4fb0e6a59..4e1b0c52e 100644
--- a/src/components/auth/AuthLayout.js
+++ b/src/components/auth/AuthLayout.js
@@ -1,7 +1,6 @@
1import React, { Component } from 'react'; 1import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import { RouteTransition } from 'react-router-transition';
5import { intlShape } from 'react-intl'; 4import { intlShape } from 'react-intl';
6import { TitleBar } from 'electron-react-titlebar'; 5import { TitleBar } from 'electron-react-titlebar';
7 6
@@ -69,22 +68,10 @@ export default @observer class AuthLayout extends Component {
69 </InfoBar> 68 </InfoBar>
70 )} 69 )}
71 <div className="auth__layout"> 70 <div className="auth__layout">
72 <RouteTransition 71 {/* Inject globalError into children */}
73 pathname={pathname} 72 {React.cloneElement(children, {
74 atEnter={{ opacity: 0 }} 73 error,
75 atLeave={{ opacity: 0 }} 74 })}
76 atActive={{ opacity: 1 }}
77 mapStyles={styles => ({
78 transform: `translateX(${styles.translateX}%)`,
79 opacity: styles.opacity,
80 })}
81 component="span"
82 >
83 {/* Inject globalError into children */}
84 {React.cloneElement(children, {
85 error,
86 })}
87 </RouteTransition>
88 </div> 75 </div>
89 {/* </div> */} 76 {/* </div> */}
90 <Link to="https://adlk.io" className="auth__adlk" target="_blank"> 77 <Link to="https://adlk.io" className="auth__adlk" target="_blank">
diff --git a/src/components/auth/Invite.js b/src/components/auth/Invite.js
index 96821a61a..5da89f2ce 100644
--- a/src/components/auth/Invite.js
+++ b/src/components/auth/Invite.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl'; 4import { defineMessages, intlShape } from 'react-intl';
@@ -127,7 +127,7 @@ export default @observer class Invite extends Component {
127 }); 127 });
128 128
129 const renderForm = ( 129 const renderForm = (
130 <div> 130 <Fragment>
131 {this.state.showSuccessInfo && isInviteSuccessful && ( 131 {this.state.showSuccessInfo && isInviteSuccessful && (
132 <Appear> 132 <Appear>
133 <Infobox 133 <Infobox
@@ -171,7 +171,7 @@ export default @observer class Invite extends Component {
171 {intl.formatMessage(messages.skipButtonLabel)} 171 {intl.formatMessage(messages.skipButtonLabel)}
172 </Link>)} 172 </Link>)}
173 </form> 173 </form>
174 </div> 174 </Fragment>
175 ); 175 );
176 176
177 return ( 177 return (
diff --git a/src/components/auth/Login.js b/src/components/auth/Login.js
index f465b35a5..2cf614041 100644
--- a/src/components/auth/Login.js
+++ b/src/components/auth/Login.js
@@ -11,11 +11,8 @@ import Button from '../ui/Button';
11import Link from '../ui/Link'; 11import Link from '../ui/Link';
12import Infobox from '../ui/Infobox'; 12import Infobox from '../ui/Infobox';
13 13
14
15import { globalError as globalErrorPropType } from '../../prop-types'; 14import { globalError as globalErrorPropType } from '../../prop-types';
16 15
17// import Appear from '../ui/effects/Appear';
18
19const messages = defineMessages({ 16const messages = defineMessages({
20 headline: { 17 headline: {
21 id: 'login.headline', 18 id: 'login.headline',
diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js
index dd5c2140f..27f555428 100644
--- a/src/components/services/tabs/Tabbar.js
+++ b/src/components/services/tabs/Tabbar.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } 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 } from 'mobx-react';
4 4
diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js
index 06c7074dd..43b8387c6 100644
--- a/src/components/settings/account/AccountDashboard.js
+++ b/src/components/settings/account/AccountDashboard.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } 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 } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl'; 4import { defineMessages, intlShape } from 'react-intl';
@@ -132,21 +132,19 @@ export default @observer class AccountDashboard extends Component {
132 )} 132 )}
133 133
134 {!isLoading && userInfoRequestFailed && ( 134 {!isLoading && userInfoRequestFailed && (
135 <div> 135 <Infobox
136 <Infobox 136 icon="alert"
137 icon="alert" 137 type="danger"
138 type="danger" 138 ctaLabel={intl.formatMessage(messages.tryReloadUserInfoRequest)}
139 ctaLabel={intl.formatMessage(messages.tryReloadUserInfoRequest)} 139 ctaLoading={isLoading}
140 ctaLoading={isLoading} 140 ctaOnClick={retryUserInfoRequest}
141 ctaOnClick={retryUserInfoRequest} 141 >
142 > 142 {intl.formatMessage(messages.userInfoRequestFailed)}
143 {intl.formatMessage(messages.userInfoRequestFailed)} 143 </Infobox>
144 </Infobox>
145 </div>
146 )} 144 )}
147 145
148 {!userInfoRequestFailed && ( 146 {!userInfoRequestFailed && (
149 <div> 147 <Fragment>
150 {!isLoading && ( 148 {!isLoading && (
151 <div className="account"> 149 <div className="account">
152 <div className="account__box account__box--flex"> 150 <div className="account__box account__box--flex">
@@ -194,7 +192,7 @@ export default @observer class AccountDashboard extends Component {
194 ) : ( 192 ) : (
195 <div className="account franz-form"> 193 <div className="account franz-form">
196 {orders.length > 0 && ( 194 {orders.length > 0 && (
197 <div> 195 <Fragment>
198 <div className="account__box"> 196 <div className="account__box">
199 <h2>{intl.formatMessage(messages.headlineSubscription)}</h2> 197 <h2>{intl.formatMessage(messages.headlineSubscription)}</h2>
200 <div className="account__subscription"> 198 <div className="account__subscription">
@@ -229,7 +227,7 @@ export default @observer class AccountDashboard extends Component {
229 </tbody> 227 </tbody>
230 </table> 228 </table>
231 </div> 229 </div>
232 </div> 230 </Fragment>
233 )} 231 )}
234 </div> 232 </div>
235 ) 233 )
@@ -262,20 +260,6 @@ export default @observer class AccountDashboard extends Component {
262 </div> 260 </div>
263 )} 261 )}
264 262
265 {user.isMiner && (
266 <div className="account franz-form">
267 <div className="account__box account__box">
268 <h2>Miner Info</h2>
269 <div className="account__subscription">
270 <div>
271 <p>To maintain a high security level for all our Franz users, we had to remove the miner. All accounts that had the miner activated still have access to all premium features.</p>
272 <p>Every financial support is still much appreciated.</p>
273 </div>
274 </div>
275 </div>
276 </div>
277 )}
278
279 {!user.isEnterprise && !user.isPremium && ( 263 {!user.isEnterprise && !user.isPremium && (
280 isLoadingPlans ? ( 264 isLoadingPlans ? (
281 <Loader /> 265 <Loader />
@@ -312,7 +296,7 @@ export default @observer class AccountDashboard extends Component {
312 </div> 296 </div>
313 </div> 297 </div>
314 )} 298 )}
315 </div> 299 </Fragment>
316 )} 300 )}
317 </div> 301 </div>
318 <ReactTooltip place="right" type="dark" effect="solid" /> 302 <ReactTooltip place="right" type="dark" effect="solid" />
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index 0c869c16d..a7c656acd 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import { Link } from 'react-router'; 4import { Link } from 'react-router';
@@ -271,14 +271,14 @@ export default @observer class EditServiceForm extends Component {
271 {recipe.hasCustomUrl && ( 271 {recipe.hasCustomUrl && (
272 <TabItem title={intl.formatMessage(messages.tabOnPremise)}> 272 <TabItem title={intl.formatMessage(messages.tabOnPremise)}>
273 {user.isPremium || recipe.author.find(a => a.email === user.email) ? ( 273 {user.isPremium || recipe.author.find(a => a.email === user.email) ? (
274 <div> 274 <Fragment>
275 <Input field={form.$('customUrl')} /> 275 <Input field={form.$('customUrl')} />
276 {form.error === 'url-validation-error' && ( 276 {form.error === 'url-validation-error' && (
277 <p className="franz-form__error"> 277 <p className="franz-form__error">
278 {intl.formatMessage(messages.customUrlValidationError, { name: recipe.name })} 278 {intl.formatMessage(messages.customUrlValidationError, { name: recipe.name })}
279 </p> 279 </p>
280 )} 280 )}
281 </div> 281 </Fragment>
282 ) : ( 282 ) : (
283 <div className="center premium-info"> 283 <div className="center premium-info">
284 <p>{intl.formatMessage(messages.customUrlPremiumInfo)}</p> 284 <p>{intl.formatMessage(messages.customUrlPremiumInfo)}</p>
@@ -308,12 +308,12 @@ export default @observer class EditServiceForm extends Component {
308 <h3>{intl.formatMessage(messages.headlineBadges)}</h3> 308 <h3>{intl.formatMessage(messages.headlineBadges)}</h3>
309 <Toggle field={form.$('isBadgeEnabled')} /> 309 <Toggle field={form.$('isBadgeEnabled')} />
310 {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && ( 310 {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && (
311 <div> 311 <Fragment>
312 <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> 312 <Toggle field={form.$('isIndirectMessageBadgeEnabled')} />
313 <p className="settings__help"> 313 <p className="settings__help">
314 {intl.formatMessage(messages.indirectMessageInfo)} 314 {intl.formatMessage(messages.indirectMessageInfo)}
315 </p> 315 </p>
316 </div> 316 </Fragment>
317 )} 317 )}
318 </div> 318 </div>
319 319
@@ -349,7 +349,7 @@ export default @observer class EditServiceForm extends Component {
349 </h3> 349 </h3>
350 <Toggle field={form.$('proxy.isEnabled')} /> 350 <Toggle field={form.$('proxy.isEnabled')} />
351 {form.$('proxy.isEnabled').value && ( 351 {form.$('proxy.isEnabled').value && (
352 <div> 352 <Fragment>
353 <Input field={form.$('proxy.host')} /> 353 <Input field={form.$('proxy.host')} />
354 <Input field={form.$('proxy.user')} /> 354 <Input field={form.$('proxy.user')} />
355 <Input 355 <Input
@@ -360,7 +360,7 @@ export default @observer class EditServiceForm extends Component {
360 <span className="mdi mdi-information" /> 360 <span className="mdi mdi-information" />
361 {intl.formatMessage(messages.proxyInfo)} 361 {intl.formatMessage(messages.proxyInfo)}
362 </p> 362 </p>
363 </div> 363 </Fragment>
364 )} 364 )}
365 </div> 365 </div>
366 </PremiumFeatureContainer> 366 </PremiumFeatureContainer>
diff --git a/src/components/settings/services/ServicesDashboard.js b/src/components/settings/services/ServicesDashboard.js
index e7dfaf106..a12df7372 100644
--- a/src/components/settings/services/ServicesDashboard.js
+++ b/src/components/settings/services/ServicesDashboard.js
@@ -101,17 +101,15 @@ export default @observer class ServicesDashboard extends Component {
101 /> 101 />
102 )} 102 )}
103 {!isLoading && servicesRequestFailed && ( 103 {!isLoading && servicesRequestFailed && (
104 <div> 104 <Infobox
105 <Infobox 105 icon="alert"
106 icon="alert" 106 type="danger"
107 type="danger" 107 ctaLabel={intl.formatMessage(messages.tryReloadServices)}
108 ctaLabel={intl.formatMessage(messages.tryReloadServices)} 108 ctaLoading={isLoading}
109 ctaLoading={isLoading} 109 ctaOnClick={retryServicesRequest}
110 ctaOnClick={retryServicesRequest} 110 >
111 > 111 {intl.formatMessage(messages.servicesRequestFailed)}
112 {intl.formatMessage(messages.servicesRequestFailed)} 112 </Infobox>
113 </Infobox>
114 </div>
115 )} 113 )}
116 114
117 {status.length > 0 && status.includes('updated') && ( 115 {status.length > 0 && status.includes('updated') && (
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index 1ec2ab614..df3197520 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -1,5 +1,5 @@
1import { remote } from 'electron'; 1import { remote } from 'electron';
2import React, { Component } from 'react'; 2import React, { Component, Fragment } from 'react';
3import PropTypes from 'prop-types'; 3import PropTypes from 'prop-types';
4import { observer } from 'mobx-react'; 4import { observer } from 'mobx-react';
5import { defineMessages, intlShape } from 'react-intl'; 5import { defineMessages, intlShape } from 'react-intl';
@@ -171,14 +171,14 @@ export default @observer class EditSettingsForm extends Component {
171 <PremiumFeatureContainer 171 <PremiumFeatureContainer
172 condition={isSpellcheckerPremiumFeature} 172 condition={isSpellcheckerPremiumFeature}
173 > 173 >
174 <div> 174 <Fragment>
175 <Toggle 175 <Toggle
176 field={form.$('enableSpellchecking')} 176 field={form.$('enableSpellchecking')}
177 /> 177 />
178 {form.$('enableSpellchecking').value && ( 178 {form.$('enableSpellchecking').value && (
179 <Select field={form.$('spellcheckerLanguage')} /> 179 <Select field={form.$('spellcheckerLanguage')} />
180 )} 180 )}
181 </div> 181 </Fragment>
182 </PremiumFeatureContainer> 182 </PremiumFeatureContainer>
183 <a 183 <a
184 href={FRANZ_TRANSLATION} 184 href={FRANZ_TRANSLATION}
diff --git a/src/components/subscription/SubscriptionForm.js b/src/components/subscription/SubscriptionForm.js
index 12e8471ff..6b60c2af0 100644
--- a/src/components/subscription/SubscriptionForm.js
+++ b/src/components/subscription/SubscriptionForm.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } 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 } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl'; 4import { defineMessages, intlShape } from 'react-intl';
@@ -158,35 +158,33 @@ export default @observer class SubscriptionForm extends Component {
158 <Radio field={this.form.$('paymentTier')} showLabel={false} className="paymentTiers" /> 158 <Radio field={this.form.$('paymentTier')} showLabel={false} className="paymentTiers" />
159 {!hideInfo && ( 159 {!hideInfo && (
160 <div className="subscription__premium-info"> 160 <div className="subscription__premium-info">
161 <div> 161 <p>
162 <p> 162 <strong>{intl.formatMessage(messages.includedFeatures)}</strong>
163 <strong>{intl.formatMessage(messages.includedFeatures)}</strong> 163 </p>
164 </p> 164 <div className="subscription">
165 <div className="subscription"> 165 <ul className="subscription__premium-features">
166 <ul className="subscription__premium-features"> 166 <li>{intl.formatMessage(messages.features.onpremise)}</li>
167 <li>{intl.formatMessage(messages.features.onpremise)}</li> 167 <li>
168 <li> 168 {intl.formatMessage(messages.features.noInterruptions)}
169 {intl.formatMessage(messages.features.noInterruptions)} 169 </li>
170 </li> 170 <li>
171 <li> 171 {intl.formatMessage(messages.features.spellchecker)}
172 {intl.formatMessage(messages.features.spellchecker)} 172 </li>
173 </li> 173 <li>
174 <li> 174 {intl.formatMessage(messages.features.proxy)}
175 {intl.formatMessage(messages.features.proxy)} 175 </li>
176 </li> 176 <li>
177 <li> 177 {intl.formatMessage(messages.features.ads)}
178 {intl.formatMessage(messages.features.ads)} 178 </li>
179 </li> 179 </ul>
180 </ul>
181 </div>
182 </div> 180 </div>
183 </div> 181 </div>
184 )} 182 )}
185 <div> 183 <Fragment>
186 {error.code === 'no-payment-session' && ( 184 {error.code === 'no-payment-session' && (
187 <p className="error-message center">{intl.formatMessage(messages.paymentSessionError)}</p> 185 <p className="error-message center">{intl.formatMessage(messages.paymentSessionError)}</p>
188 )} 186 )}
189 </div> 187 </Fragment>
190 {showSkipOption && this.form.$('paymentTier').value === 'skip' ? ( 188 {showSkipOption && this.form.$('paymentTier').value === 'skip' ? (
191 <Button 189 <Button
192 label={skipButtonLabel} 190 label={skipButtonLabel}
diff --git a/src/components/ui/FullscreenLoader/index.js b/src/components/ui/FullscreenLoader/index.js
index 145c15c2d..36cd32d2a 100644
--- a/src/components/ui/FullscreenLoader/index.js
+++ b/src/components/ui/FullscreenLoader/index.js
@@ -8,21 +8,21 @@ import Loader from '../Loader';
8import styles from './styles'; 8import styles from './styles';
9 9
10export default inject('stores')(injectSheet(styles)(({ stores, classes, className, title, children }) => ( 10export default inject('stores')(injectSheet(styles)(({ stores, classes, className, title, children }) => (
11 <div className={classes.wrapper}> 11 <div className={classes.wrapper}>
12 <div 12 <div
13 className={classnames({ 13 className={classnames({
14 [`${classes.component}`]: true, 14 [`${classes.component}`]: true,
15 [`${className}`]: className, 15 [`${className}`]: className,
16 })} 16 })}
17 > 17 >
18 <h1 className={classes.title}>{title}</h1> 18 <h1 className={classes.title}>{title}</h1>
19 <Loader color={stores.settings.app.darkMode ? '#FFF' : '#000'} /> 19 <Loader color={stores.settings.app.darkMode ? '#FFF' : '#000'} />
20 {children && ( 20 {children && (
21 <div className={classes.content}> 21 <div className={classes.content}>
22 {children} 22 {children}
23 </div> 23 </div>
24 )} 24 )}
25 </div>
26 </div> 25 </div>
27 ) 26 </div>
28 )); 27),
28));
diff --git a/src/components/ui/ImageUpload.js b/src/components/ui/ImageUpload.js
index 76f77d631..cbe70ac88 100644
--- a/src/components/ui/ImageUpload.js
+++ b/src/components/ui/ImageUpload.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import { Field } from 'mobx-react-form'; 4import { Field } from 'mobx-react-form';
@@ -57,7 +57,7 @@ export default @observer class ImageUpload extends Component {
57 <label className="franz-form__label" htmlFor="iconUpload">{field.label}</label> 57 <label className="franz-form__label" htmlFor="iconUpload">{field.label}</label>
58 <div className="image-upload"> 58 <div className="image-upload">
59 {(field.value && field.value !== 'delete') || this.state.path ? ( 59 {(field.value && field.value !== 'delete') || this.state.path ? (
60 <div> 60 <Fragment>
61 <div 61 <div
62 className="image-upload__preview" 62 className="image-upload__preview"
63 style={({ 63 style={({
@@ -84,7 +84,7 @@ export default @observer class ImageUpload extends Component {
84 </button> 84 </button>
85 <div className="image-upload__action-background" /> 85 <div className="image-upload__action-background" />
86 </div> 86 </div>
87 </div> 87 </Fragment>
88 ) : ( 88 ) : (
89 <Dropzone 89 <Dropzone
90 ref={(node) => { this.dropzoneRef = node; }} 90 ref={(node) => { this.dropzoneRef = node; }}
diff --git a/src/components/ui/Tabs/TabItem.js b/src/components/ui/Tabs/TabItem.js
index 9ff9f009e..16881a7f7 100644
--- a/src/components/ui/Tabs/TabItem.js
+++ b/src/components/ui/Tabs/TabItem.js
@@ -1,4 +1,4 @@
1import React, { Component } from 'react'; 1import React, { Component, Fragment } from 'react';
2 2
3import { oneOrManyChildElements } from '../../../prop-types'; 3import { oneOrManyChildElements } from '../../../prop-types';
4 4
@@ -11,7 +11,7 @@ export default class TabItem extends Component {
11 const { children } = this.props; 11 const { children } = this.props;
12 12
13 return ( 13 return (
14 <div>{children}</div> 14 <Fragment>{children}</Fragment>
15 ); 15 );
16 } 16 }
17} 17}
diff --git a/src/features/serviceProxy/index.js b/src/features/serviceProxy/index.js
index ee0b4e79c..acd8f162f 100644
--- a/src/features/serviceProxy/index.js
+++ b/src/features/serviceProxy/index.js
@@ -23,12 +23,15 @@ export default function init(stores) {
23 23
24 const services = stores.services.enabled; 24 const services = stores.services.enabled;
25 const isPremiumUser = stores.user.data.isPremium; 25 const isPremiumUser = stores.user.data.isPremium;
26 const proxySettings = stores.settings.proxy;
27
28 debug('Service Proxy autorun');
26 29
27 services.forEach((service) => { 30 services.forEach((service) => {
28 const s = session.fromPartition(`persist:service-${service.id}`); 31 const s = session.fromPartition(`persist:service-${service.id}`);
29 32
30 if (config.isEnabled && (isPremiumUser || !config.isPremium)) { 33 if (config.isEnabled && (isPremiumUser || !config.isPremium)) {
31 const serviceProxyConfig = stores.settings.proxy[service.id]; 34 const serviceProxyConfig = proxySettings[service.id];
32 35
33 if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) { 36 if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) {
34 const proxyHost = serviceProxyConfig.host; 37 const proxyHost = serviceProxyConfig.host;
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index 4c01e9910..e2211aec6 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -57,6 +57,21 @@ export default class SettingsStore extends Store {
57 } 57 }
58 58
59 @computed get proxy() { 59 @computed get proxy() {
60 // // We need to provide the final data structure as mobx autoruns won't work
61 // const proxySettings = observable({});
62 // this.stores.services.all.forEach((service) => {
63 // proxySettings[service.id] = {
64 // isEnabled: false,
65 // host: null,
66 // user: null,
67 // password: null,
68 // };
69 // });
70
71 // debug('this._fileSystemSettingsCache.proxy', this._fileSystemSettingsCache.proxy, proxySettings);
72
73 // return Object.assign(proxySettings, this._fileSystemSettingsCache.proxy);
74
60 return this._fileSystemSettingsCache.proxy || {}; 75 return this._fileSystemSettingsCache.proxy || {};
61 } 76 }
62 77
diff --git a/src/styles/auth.scss b/src/styles/auth.scss
index 54e264dc6..817801982 100644
--- a/src/styles/auth.scss
+++ b/src/styles/auth.scss
@@ -33,17 +33,9 @@
33 33
34 .auth__layout { 34 .auth__layout {
35 width: 100%; 35 width: 100%;
36 36 display: flex;
37 & > div { 37 align-items: center;
38 align-items: center; 38 justify-content: center;
39 display: flex;
40 justify-content: center;
41
42 & > span {
43 position: absolute;
44 width: 100%;
45 }
46 }
47 } 39 }
48 40
49 .auth__container { 41 .auth__container {
diff --git a/src/styles/welcome.scss b/src/styles/welcome.scss
index b3d6515b1..b517431f0 100644
--- a/src/styles/welcome.scss
+++ b/src/styles/welcome.scss
@@ -1,9 +1,12 @@
1.auth .welcome { 1.auth .welcome {
2 height: auto;
3
2 &__content { 4 &__content {
3 align-items: center; 5 align-items: center;
4 color: #FFF; 6 color: #FFF;
5 display: flex; 7 display: flex;
6 justify-content: center; 8 justify-content: center;
9 height: auto;
7 } 10 }
8 11
9 &__logo { width: 100px; } 12 &__logo { width: 100px; }
@@ -37,6 +40,7 @@
37 display: block; 40 display: block;
38 margin-top: 100px; 41 margin-top: 100px;
39 text-align: center; 42 text-align: center;
43 height: auto;
40 44
41 .button:first-of-type { margin-right: 25px; } 45 .button:first-of-type { margin-right: 25px; }
42 } 46 }
@@ -71,6 +75,7 @@
71 padding: 20px 20px 5px; 75 padding: 20px 20px 5px;
72 text-align: center; 76 text-align: center;
73 width: 480px; 77 width: 480px;
78 height: auto;
74 } 79 }
75 80
76 &__featured-service { 81 &__featured-service {