From 78132e9adb5055cdad7043fbad031b63c262e679 Mon Sep 17 00:00:00 2001 From: SleepWalker Date: Sat, 19 Nov 2016 11:34:19 +0200 Subject: [PATCH] #48: add loader during account switching --- src/components/accounts/AccountSwitcher.jsx | 6 +++++- src/index.js | 3 ++- src/services/loader.js | 9 +++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 src/services/loader.js diff --git a/src/components/accounts/AccountSwitcher.jsx b/src/components/accounts/AccountSwitcher.jsx index 856a939..03d7b5f 100644 --- a/src/components/accounts/AccountSwitcher.jsx +++ b/src/components/accounts/AccountSwitcher.jsx @@ -4,6 +4,7 @@ import classNames from 'classnames'; import { Link } from 'react-router'; import { FormattedMessage as Message } from 'react-intl'; +import loader from 'services/loader'; import { skins, SKIN_DARK, COLOR_WHITE } from 'components/ui'; import { Button } from 'components/ui/form'; @@ -137,9 +138,12 @@ export class AccountSwitcher extends Component { onSwitch = (account) => (event) => { event.preventDefault(); + loader.show(); + this.props.switchAccount(account) .then(() => this.props.onAfterAction()) - .then(() => this.props.onSwitch(account)); + .then(() => this.props.onSwitch(account)) + .finally(() => loader.hide()); }; onRemove = (account) => (event) => { diff --git a/src/index.js b/src/index.js index a5d083b..2c7c58e 100644 --- a/src/index.js +++ b/src/index.js @@ -13,6 +13,7 @@ import { IntlProvider } from 'components/i18n'; import routesFactory from 'routes'; import storeFactory from 'storeFactory'; import bsodFactory from 'components/ui/bsod/factory'; +import loader from 'services/loader'; const store = storeFactory(); @@ -52,7 +53,7 @@ Promise.all([ function stopLoading() { - document.getElementById('loader').classList.remove('is-active'); + loader.hide(); } import scrollTo from 'components/ui/scrollTo'; diff --git a/src/services/loader.js b/src/services/loader.js new file mode 100644 index 0000000..c1d8619 --- /dev/null +++ b/src/services/loader.js @@ -0,0 +1,9 @@ +export default { + show() { + document.getElementById('loader').classList.add('is-active'); + }, + + hide() { + document.getElementById('loader').classList.remove('is-active'); + } +};