From 232b6a476044f553a32d51067b4e3e125ac3c19d Mon Sep 17 00:00:00 2001 From: Philippe Duval Date: Thu, 13 Sep 2018 12:49:12 -0400 Subject: [PATCH] Rename reloadHash store to reloadRequests, add intervalId as state. --- src/components/core/Reloader.react.js | 27 ++++++++++++++------------- src/reducers/reducer.js | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/components/core/Reloader.react.js b/src/components/core/Reloader.react.js index 55b0e5a..103123b 100644 --- a/src/components/core/Reloader.react.js +++ b/src/components/core/Reloader.react.js @@ -11,27 +11,27 @@ class Reloader extends React.Component { this.state = { hash: null, interval, - disabled: false + disabled: false, + intervalId: null } } else { this.state = { disabled: true } } - this._intervalId = null; } componentDidUpdate() { - const {reloadHash, dispatch} = this.props; - if (reloadHash.status === 200) { + const {reloadRequest, dispatch} = this.props; + if (reloadRequest.status === 200) { if (this.state.hash === null) { - this.setState({hash: reloadHash.content.reloadHash}); + this.setState({hash: reloadRequest.content.reloadHash}); return; } - if (reloadHash.content.reloadHash !== this.state.hash) { + if (reloadRequest.content.reloadHash !== this.state.hash) { // eslint-disable-next-line no-undef window.clearInterval(this._intervalId); - if (reloadHash.content.hard) { + if (reloadRequest.content.hard) { // Assets file have changed, need to reload them. // eslint-disable-next-line no-undef window.top.location.reload(); @@ -46,17 +46,18 @@ class Reloader extends React.Component { componentDidMount() { const { dispatch } = this.props; const { disabled, interval } = this.state; - if (!disabled && !this._intervalId) { - this._intervalId = setInterval(() => { + if (!disabled && !this.state.intervalId) { + const intervalId = setInterval(() => { dispatch(getReloadHash()); }, interval); + this.setState({intervalId}) } } componentWillUnmount() { - if (!this.state.disabled) { + if (!this.state.disabled && this.state.intervalId) { // eslint-disable-next-line no-undef - window.clearInterval(this._intervalId); + window.clearInterval(this.state.intervalId); } } @@ -70,7 +71,7 @@ Reloader.defaultProps = {}; Reloader.propTypes = { id: PropTypes.string, config: PropTypes.object, - reloadHash: PropTypes.object, + reloadRequest: PropTypes.object, dispatch: PropTypes.func, interval: PropTypes.number }; @@ -78,7 +79,7 @@ Reloader.propTypes = { export default connect( state => ({ config: state.config, - reloadHash: state.reloadHash + reloadRequest: state.reloadRequest }), dispatch => ({dispatch}) )(Reloader); diff --git a/src/reducers/reducer.js b/src/reducers/reducer.js index 02216a6..80ff6a6 100644 --- a/src/reducers/reducer.js +++ b/src/reducers/reducer.js @@ -20,7 +20,7 @@ const reducer = combineReducers({ dependenciesRequest: API.dependenciesRequest, layoutRequest: API.layoutRequest, loginRequest: API.loginRequest, - reloadHash: API.reloadRequest, + reloadRequest: API.reloadRequest, history });