aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/components/ui/AppLoader/index.js8
-rw-r--r--src/components/ui/FullscreenLoader/index.js71
-rw-r--r--src/components/ui/WebviewLoader/index.js3
-rw-r--r--src/containers/layout/AppLayoutContainer.js4
-rw-r--r--src/theme/dark/index.js3
-rw-r--r--src/theme/default/index.js4
6 files changed, 64 insertions, 29 deletions
diff --git a/src/components/ui/AppLoader/index.js b/src/components/ui/AppLoader/index.js
index 1b9d044f4..61053f6d1 100644
--- a/src/components/ui/AppLoader/index.js
+++ b/src/components/ui/AppLoader/index.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 injectSheet from 'react-jss'; 3import injectSheet, { withTheme } from 'react-jss';
4import classnames from 'classnames'; 4import classnames from 'classnames';
5 5
6import FullscreenLoader from '../FullscreenLoader'; 6import FullscreenLoader from '../FullscreenLoader';
@@ -19,9 +19,10 @@ const textList = shuffleArray([
19 'Traveling through space & time', 19 'Traveling through space & time',
20]); 20]);
21 21
22export default @injectSheet(styles) class AppLoader extends Component { 22export default @injectSheet(styles) @withTheme class AppLoader extends Component {
23 static propTypes = { 23 static propTypes = {
24 classes: PropTypes.object.isRequired, 24 classes: PropTypes.object.isRequired,
25 theme: PropTypes.object.isRequired,
25 } 26 }
26 27
27 state = { 28 state = {
@@ -43,13 +44,14 @@ export default @injectSheet(styles) class AppLoader extends Component {
43 } 44 }
44 45
45 render() { 46 render() {
46 const { classes } = this.props; 47 const { classes, theme } = this.props;
47 const { step } = this.state; 48 const { step } = this.state;
48 49
49 return ( 50 return (
50 <FullscreenLoader 51 <FullscreenLoader
51 title="Franz" 52 title="Franz"
52 className={classes.component} 53 className={classes.component}
54 spinnerColor={theme.colorAppLoaderSpinner}
53 > 55 >
54 {textList.map((text, i) => ( 56 {textList.map((text, i) => (
55 <span 57 <span
diff --git a/src/components/ui/FullscreenLoader/index.js b/src/components/ui/FullscreenLoader/index.js
index e0a24a527..6ecf4d395 100644
--- a/src/components/ui/FullscreenLoader/index.js
+++ b/src/components/ui/FullscreenLoader/index.js
@@ -1,29 +1,56 @@
1import React from 'react'; 1import React, { Component } from 'react';
2import injectSheet from 'react-jss'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react';
4import injectSheet, { withTheme } from 'react-jss';
3import classnames from 'classnames'; 5import classnames from 'classnames';
4import { inject } from 'mobx-react';
5 6
6import Loader from '../Loader'; 7import Loader from '../Loader';
7 8
8import styles from './styles'; 9import styles from './styles';
9 10
10export default inject('stores')(injectSheet(styles)(({ 11export default @observer @withTheme @injectSheet(styles) class FullscreenLoader extends Component {
11 stores, classes, className, title, children, 12 static propTypes = {
12}) => ( 13 className: PropTypes.string,
13 <div className={classes.wrapper}> 14 title: PropTypes.string.isRequired,
14 <div 15 classes: PropTypes.object.isRequired,
15 className={classnames({ 16 theme: PropTypes.object.isRequired,
16 [`${classes.component}`]: true, 17 spinnerColor: PropTypes.string,
17 [`${className}`]: className, 18 children: PropTypes.node,
18 })} 19 }
19 > 20
20 <h1 className={classes.title}>{title}</h1> 21 static defaultProps = {
21 <Loader color={stores.settings.app.darkMode ? '#FFF' : '#000'} /> 22 className: null,
22 {children && ( 23 spinnerColor: null,
23 <div className={classes.content}> 24 children: null,
24 {children} 25 }
26
27 render() {
28 const {
29 classes,
30 title,
31 children,
32 spinnerColor,
33 className,
34 theme,
35 } = this.props;
36
37 return (
38 <div className={classes.wrapper}>
39 <div
40 className={classnames({
41 [`${classes.component}`]: true,
42 [`${className}`]: className,
43 })}
44 >
45 <h1 className={classes.title}>{title}</h1>
46 <Loader color={spinnerColor || theme.colorFullscreenLoaderSpinner} />
47 {children && (
48 <div className={classes.content}>
49 {children}
50 </div>
51 )}
25 </div> 52 </div>
26 )} 53 </div>
27 </div> 54 );
28 </div> 55 }
29))); 56}
diff --git a/src/components/ui/WebviewLoader/index.js b/src/components/ui/WebviewLoader/index.js
index ab17199e5..3a3dbbe49 100644
--- a/src/components/ui/WebviewLoader/index.js
+++ b/src/components/ui/WebviewLoader/index.js
@@ -1,12 +1,13 @@
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 injectSheet from 'react-jss'; 4import injectSheet from 'react-jss';
4 5
5import FullscreenLoader from '../FullscreenLoader'; 6import FullscreenLoader from '../FullscreenLoader';
6 7
7import styles from './styles'; 8import styles from './styles';
8 9
9export default @injectSheet(styles) class WebviewLoader extends Component { 10export default @observer @injectSheet(styles) class WebviewLoader extends Component {
10 static propTypes = { 11 static propTypes = {
11 name: PropTypes.string.isRequired, 12 name: PropTypes.string.isRequired,
12 classes: PropTypes.object.isRequired, 13 classes: PropTypes.object.isRequired,
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js
index 455df10d7..430b49b55 100644
--- a/src/containers/layout/AppLayoutContainer.js
+++ b/src/containers/layout/AppLayoutContainer.js
@@ -75,7 +75,9 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e
75 75
76 if (isLoadingFeatures || isLoadingServices) { 76 if (isLoadingFeatures || isLoadingServices) {
77 return ( 77 return (
78 <AppLoader /> 78 <ThemeProvider theme={ui.theme}>
79 <AppLoader />
80 </ThemeProvider>
79 ); 81 );
80 } 82 }
81 83
diff --git a/src/theme/dark/index.js b/src/theme/dark/index.js
index aafa7cb27..fb1713184 100644
--- a/src/theme/dark/index.js
+++ b/src/theme/dark/index.js
@@ -8,5 +8,6 @@ export const colorBackgroundSubscriptionContainer = legacyStyles.themeBrandInfo;
8export const colorHeadline = legacyStyles.darkThemeTextColor; 8export const colorHeadline = legacyStyles.darkThemeTextColor;
9export const colorText = legacyStyles.darkThemeTextColor; 9export const colorText = legacyStyles.darkThemeTextColor;
10 10
11// Webview Loader 11// Loader
12export const colorFullscreenLoaderSpinner = '#FFF';
12export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.darkThemeGrayDarkest, 0.5); 13export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.darkThemeGrayDarkest, 0.5);
diff --git a/src/theme/default/index.js b/src/theme/default/index.js
index 9640b1cb0..37827621c 100644
--- a/src/theme/default/index.js
+++ b/src/theme/default/index.js
@@ -23,5 +23,7 @@ export const colorSubscriptionContainerTitle = brandPrimary;
23export const colorSubscriptionContainerActionButtonBackground = brandPrimary; 23export const colorSubscriptionContainerActionButtonBackground = brandPrimary;
24export const colorSubscriptionContainerActionButtonColor = '#FFF'; 24export const colorSubscriptionContainerActionButtonColor = '#FFF';
25 25
26// Webview Loader 26// Loader
27export const colorAppLoaderSpinner = '#FFF';
28export const colorFullscreenLoaderSpinner = legacyStyles.themeGrayDark;
27export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.themeGrayLighter, 0.8); 29export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.themeGrayLighter, 0.8);