diff --git a/opentech/static_src/src/app/src/SwitcherApp.js b/opentech/static_src/src/app/src/SwitcherApp.js
index 6f22fd19d629c47884162c9d814b58ea95c18f57..b9f6ce2c09c6852f85f68df43697d78b58f9f94c 100644
--- a/opentech/static_src/src/app/src/SwitcherApp.js
+++ b/opentech/static_src/src/app/src/SwitcherApp.js
@@ -5,6 +5,7 @@ import { connect } from 'react-redux'
 import Switcher from '@components/Switcher';
 import MessagesContainer from '@containers/MessagesContainer'
 import { setCurrentSubmission } from '@actions/submissions';
+import { loadSubmissionFromURL } from '@actions/submissions';
 
 
 class SwitcherApp extends React.Component {
@@ -12,22 +13,26 @@ class SwitcherApp extends React.Component {
         pageContent: PropTypes.node.isRequired,
         detailComponent: PropTypes.node.isRequired,
         switcherSelector: PropTypes.string.isRequired,
-        setCurrentItem: PropTypes.func,
+        startOpen: PropTypes.bool,
+        processParams: PropTypes.func.isRequired,
     };
 
-    componentDidMount() {
-        const urlParams = new URLSearchParams(window.location.search);
+    state = {
+        detailOpened: false,
+        mounting: true,
+    };
 
-        if (urlParams.has('submission')) {
-            this.openDetail();
+    componentDidMount() {
+        this.setState({
+            mounting: false
+        })
 
-            // pass in method to this.setActive
-            const activeId = Number(urlParams.get('submission'));
-            this.props.setCurrentItem(activeId);
+        const success = this.props.processParams()
+        if (success) {
+            this.openDetail()
         }
-    }
 
-    state = { detailOpened: false };
+    }
 
     openDetail = () => {
         document.body.classList.add('app-open');
@@ -50,6 +55,9 @@ class SwitcherApp extends React.Component {
     }
 
     render() {
+        if ( this.state.mounting ) {
+            return null
+        }
         return (
             <>
                 <MessagesContainer />
@@ -64,7 +72,7 @@ class SwitcherApp extends React.Component {
 }
 
 const mapDispatchToProps = dispatch => ({
-    setCurrentItem: id => dispatch(setCurrentSubmission(id)),
+    processParams: id => dispatch(loadSubmissionFromURL()),
 });
 
 export default connect(null, mapDispatchToProps)(SwitcherApp);
diff --git a/opentech/static_src/src/app/src/redux/actions/submissions.js b/opentech/static_src/src/app/src/redux/actions/submissions.js
index 79a61c923a019d73b7148d37675a513f05a49ac9..7eeaa36f52bcef6d67a3e5e2b5d0e4a830b1f77f 100644
--- a/opentech/static_src/src/app/src/redux/actions/submissions.js
+++ b/opentech/static_src/src/app/src/redux/actions/submissions.js
@@ -54,8 +54,20 @@ export const setCurrentSubmissionRound = id => ({
     id,
 });
 
+
+export const loadSubmissionFromURL = () => (dispatch, getState) => {
+    const urlParams = new URLSearchParams(window.location.search);
+    if (urlParams.has('submission')) {
+        const activeId = Number(urlParams.get('submission'));
+        return dispatch(setCurrentSubmission(activeId));
+    }
+    return null;
+}
+
+
 export const setCurrentSubmission = id => (dispatch, getState) => {
     const submissionID = getCurrentSubmissionID(getState())
+
     if (id && submissionID !== id) {
         dispatch(push(`?submission=${id}`));
     } else if (!id) {