From 037acf5d64b20d0f1c7be2f9e863fbbbc166c1ea Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Mon, 26 Nov 2018 22:04:35 -0800 Subject: [PATCH] Closing webamp closes the modal --- src/Overlay.js | 3 ++- src/WebampComponent.js | 17 ++++++++++++++++- src/redux/actionCreators.js | 3 +++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 src/redux/actionCreators.js diff --git a/src/Overlay.js b/src/Overlay.js index 86527982..69506e31 100644 --- a/src/Overlay.js +++ b/src/Overlay.js @@ -1,6 +1,7 @@ import React from "react"; import ReactDOM from "react-dom"; import { connect } from "react-redux"; +import * as ActionCreators from "./redux/actionCreators"; class Overlay extends React.Component { constructor() { @@ -71,7 +72,7 @@ class Overlay extends React.Component { const mapDispatchToProps = dispatch => ({ closeModal() { - dispatch({ type: "CLOSE_MODAL" }); + dispatch(ActionCreators.closeModal()); } }); export default connect( diff --git a/src/WebampComponent.js b/src/WebampComponent.js index ac1e013f..0a9b988a 100644 --- a/src/WebampComponent.js +++ b/src/WebampComponent.js @@ -1,6 +1,8 @@ import React from "react"; +import { connect } from "react-redux"; +import * as ActionCreators from "./redux/actionCreators"; -export default class WebampComponent extends React.Component { +class WebampComponent extends React.Component { constructor(props) { super(props); this.state = { loading: true }; @@ -43,6 +45,9 @@ export default class WebampComponent extends React.Component { zIndex: 99999 }); + // TODO: Technically we should unsubscribe this on unmount + this._webamp.onClose(this.props.closeModal); + setTimeout(async () => { await this._webamp.renderWhenReady(this._ref); }, 400); @@ -73,3 +78,13 @@ export default class WebampComponent extends React.Component { ); } } + +const mapDispatchToProps = dispatch => ({ + closeModal() { + dispatch(ActionCreators.closeModal()); + } +}); +export default connect( + null, + mapDispatchToProps +)(WebampComponent); diff --git a/src/redux/actionCreators.js b/src/redux/actionCreators.js new file mode 100644 index 00000000..e28684aa --- /dev/null +++ b/src/redux/actionCreators.js @@ -0,0 +1,3 @@ +export function closeModal() { + return { type: "CLOSE_MODAL" }; +}