PageSwitcher.js (1527B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 "use strict"; 6 7 const { 8 createFactory, 9 PureComponent, 10 } = require("resource://devtools/client/shared/vendor/react.mjs"); 11 const { 12 connect, 13 } = require("resource://devtools/client/shared/vendor/react-redux.js"); 14 15 const { 16 PAGE_TYPES, 17 } = require("resource://devtools/client/application/src/constants.js"); 18 const Types = require("resource://devtools/client/application/src/types/index.js"); 19 20 const ManifestPage = createFactory( 21 require("resource://devtools/client/application/src/components/manifest/ManifestPage.js") 22 ); 23 const WorkersPage = createFactory( 24 require("resource://devtools/client/application/src/components/service-workers/WorkersPage.js") 25 ); 26 27 class PageSwitcher extends PureComponent { 28 static get propTypes() { 29 return { 30 page: Types.page.isRequired, 31 }; 32 } 33 34 render() { 35 let component = null; 36 37 switch (this.props.page) { 38 case PAGE_TYPES.MANIFEST: 39 component = ManifestPage({}); 40 break; 41 case PAGE_TYPES.SERVICE_WORKERS: 42 component = WorkersPage({}); 43 break; 44 default: 45 console.error("Unknown path. Can not direct to a page."); 46 return null; 47 } 48 49 return component; 50 } 51 } 52 53 function mapStateToProps(state) { 54 return { 55 page: state.ui.selectedPage, 56 }; 57 } 58 59 module.exports = connect(mapStateToProps)(PageSwitcher);