Reload Settings when FROM address modal saved

[MAILPOET-2871]
This commit is contained in:
Jan Jakeš
2020-04-28 11:04:10 +02:00
committed by Veljko V
parent 6562eab1d2
commit 18d34560c5

View File

@@ -5,7 +5,11 @@ import SetFromAddressModal from 'common/set_from_address_modal';
import { GlobalContext, useGlobalContextValue } from 'context/index.jsx';
import Notices from 'notices/notices.jsx';
const App = () => {
type Props = {
onRequestClose?: () => void,
};
const App = ({ onRequestClose }: Props) => {
const [showModal, setShowModal] = useState(false);
// use jQuery since some of the targeted notices are added to the DOM using the old
@@ -21,16 +25,33 @@ const App = () => {
<Notices />
{ showModal && (
<SetFromAddressModal
onRequestClose={() => setShowModal(false)}
onRequestClose={() => {
setShowModal(false);
onRequestClose();
}}
/>
)}
</GlobalContext.Provider>
);
};
App.defaultProps = {
onRequestClose: () => {},
};
// nothing is actually rendered to the container because the <Modal> component uses
// ReactDOM.createPortal() but we need an element as a React root on all pages
const container = document.getElementById('mailpoet_set_from_address_modal');
if (container) {
ReactDOM.render(<App />, container);
ReactDOM.render(
<App onRequestClose={() => {
// if in Settings, reload page, so the new saved FROM address is loaded
const isInSettings = window.location.href.includes('?page=mailpoet-settings');
if (isInSettings) {
window.location.reload();
}
}}
/>,
container
);
}