GridList.js (2233B)
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 dom = require("resource://devtools/client/shared/vendor/react-dom-factories.js"); 12 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs"); 13 const { 14 getStr, 15 } = require("resource://devtools/client/inspector/layout/utils/l10n.js"); 16 17 const GridItem = createFactory( 18 require("resource://devtools/client/inspector/grids/components/GridItem.js") 19 ); 20 21 const Types = require("resource://devtools/client/inspector/grids/types.js"); 22 23 class GridList extends PureComponent { 24 static get propTypes() { 25 return { 26 dispatch: PropTypes.func.isRequired, 27 getSwatchColorPickerTooltip: PropTypes.func.isRequired, 28 grids: PropTypes.arrayOf(PropTypes.shape(Types.grid)).isRequired, 29 onSetGridOverlayColor: PropTypes.func.isRequired, 30 onToggleGridHighlighter: PropTypes.func.isRequired, 31 setSelectedNode: PropTypes.func.isRequired, 32 }; 33 } 34 35 render() { 36 const { 37 dispatch, 38 getSwatchColorPickerTooltip, 39 grids, 40 onSetGridOverlayColor, 41 onToggleGridHighlighter, 42 setSelectedNode, 43 } = this.props; 44 45 return dom.div( 46 { className: "grid-container" }, 47 dom.span( 48 { 49 role: "heading", 50 "aria-level": "3", 51 }, 52 getStr("layout.overlayGrid") 53 ), 54 dom.ul( 55 { 56 id: "grid-list", 57 className: "devtools-monospace", 58 }, 59 grids 60 // Skip subgrids since they are rendered by their parent grids in GridItem. 61 .filter(grid => !grid.isSubgrid) 62 .map(grid => 63 GridItem({ 64 dispatch, 65 key: grid.id, 66 getSwatchColorPickerTooltip, 67 grid, 68 grids, 69 onSetGridOverlayColor, 70 onToggleGridHighlighter, 71 setSelectedNode, 72 }) 73 ) 74 ) 75 ); 76 } 77 } 78 79 module.exports = GridList;