summaryrefslogtreecommitdiffstats
path: root/devtools/client/application/src/components/routing/PageSwitcher.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/application/src/components/routing/PageSwitcher.js')
-rw-r--r--devtools/client/application/src/components/routing/PageSwitcher.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/devtools/client/application/src/components/routing/PageSwitcher.js b/devtools/client/application/src/components/routing/PageSwitcher.js
new file mode 100644
index 0000000000..42ea536e96
--- /dev/null
+++ b/devtools/client/application/src/components/routing/PageSwitcher.js
@@ -0,0 +1,55 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+const {
+ createFactory,
+ PureComponent,
+} = require("devtools/client/shared/vendor/react");
+const { connect } = require("devtools/client/shared/vendor/react-redux");
+
+const { PAGE_TYPES } = require("devtools/client/application/src/constants");
+const Types = require("devtools/client/application/src/types/index");
+
+const ManifestPage = createFactory(
+ require("devtools/client/application/src/components/manifest/ManifestPage")
+);
+const WorkersPage = createFactory(
+ require("devtools/client/application/src/components/service-workers/WorkersPage")
+);
+
+class PageSwitcher extends PureComponent {
+ static get propTypes() {
+ return {
+ page: Types.page.isRequired,
+ };
+ }
+
+ render() {
+ let component = null;
+
+ switch (this.props.page) {
+ case PAGE_TYPES.MANIFEST:
+ component = ManifestPage({});
+ break;
+ case PAGE_TYPES.SERVICE_WORKERS:
+ component = WorkersPage({});
+ break;
+ default:
+ console.error("Unknown path. Can not direct to a page.");
+ return null;
+ }
+
+ return component;
+ }
+}
+
+function mapStateToProps(state) {
+ return {
+ page: state.ui.selectedPage,
+ };
+}
+
+module.exports = connect(mapStateToProps)(PageSwitcher);