From 4c2015db267ede5ecdf7fc838e326b7fa49d8195 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 12 Dec 2018 11:08:41 +0100 Subject: Improve loader themeing --- src/components/ui/AppLoader/index.js | 8 ++-- src/components/ui/FullscreenLoader/index.js | 71 ++++++++++++++++++++--------- src/components/ui/WebviewLoader/index.js | 3 +- src/containers/layout/AppLayoutContainer.js | 4 +- src/theme/dark/index.js | 3 +- src/theme/default/index.js | 4 +- 6 files changed, 64 insertions(+), 29 deletions(-) (limited to 'src') 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 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import injectSheet from 'react-jss'; +import injectSheet, { withTheme } from 'react-jss'; import classnames from 'classnames'; import FullscreenLoader from '../FullscreenLoader'; @@ -19,9 +19,10 @@ const textList = shuffleArray([ 'Traveling through space & time', ]); -export default @injectSheet(styles) class AppLoader extends Component { +export default @injectSheet(styles) @withTheme class AppLoader extends Component { static propTypes = { classes: PropTypes.object.isRequired, + theme: PropTypes.object.isRequired, } state = { @@ -43,13 +44,14 @@ export default @injectSheet(styles) class AppLoader extends Component { } render() { - const { classes } = this.props; + const { classes, theme } = this.props; const { step } = this.state; return ( {textList.map((text, i) => ( ( -
-
-

{title}

- - {children && ( -
- {children} +export default @observer @withTheme @injectSheet(styles) class FullscreenLoader extends Component { + static propTypes = { + className: PropTypes.string, + title: PropTypes.string.isRequired, + classes: PropTypes.object.isRequired, + theme: PropTypes.object.isRequired, + spinnerColor: PropTypes.string, + children: PropTypes.node, + } + + static defaultProps = { + className: null, + spinnerColor: null, + children: null, + } + + render() { + const { + classes, + title, + children, + spinnerColor, + className, + theme, + } = this.props; + + return ( +
+
+

{title}

+ + {children && ( +
+ {children} +
+ )}
- )} -
-
-))); +
+ ); + } +} 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 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; import injectSheet from 'react-jss'; import FullscreenLoader from '../FullscreenLoader'; import styles from './styles'; -export default @injectSheet(styles) class WebviewLoader extends Component { +export default @observer @injectSheet(styles) class WebviewLoader extends Component { static propTypes = { name: PropTypes.string.isRequired, 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 if (isLoadingFeatures || isLoadingServices) { return ( - + + + ); } 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; export const colorHeadline = legacyStyles.darkThemeTextColor; export const colorText = legacyStyles.darkThemeTextColor; -// Webview Loader +// Loader +export const colorFullscreenLoaderSpinner = '#FFF'; export 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; export const colorSubscriptionContainerActionButtonBackground = brandPrimary; export const colorSubscriptionContainerActionButtonColor = '#FFF'; -// Webview Loader +// Loader +export const colorAppLoaderSpinner = '#FFF'; +export const colorFullscreenLoaderSpinner = legacyStyles.themeGrayDark; export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.themeGrayLighter, 0.8); -- cgit v1.2.3-70-g09d2