FontOverview.js (2155B)
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 14 const Accordion = createFactory( 15 require("resource://devtools/client/shared/components/Accordion.js") 16 ); 17 const FontList = createFactory( 18 require("resource://devtools/client/inspector/fonts/components/FontList.js") 19 ); 20 21 const { 22 getStr, 23 } = require("resource://devtools/client/inspector/fonts/utils/l10n.js"); 24 const Types = require("resource://devtools/client/inspector/fonts/types.js"); 25 26 class FontOverview extends PureComponent { 27 static get propTypes() { 28 return { 29 fontData: PropTypes.shape(Types.fontData).isRequired, 30 fontOptions: PropTypes.shape(Types.fontOptions).isRequired, 31 onPreviewTextChange: PropTypes.func.isRequired, 32 onToggleFontHighlight: PropTypes.func.isRequired, 33 }; 34 } 35 36 constructor(props) { 37 super(props); 38 this.onToggleFontHighlightGlobal = (font, show) => { 39 this.props.onToggleFontHighlight(font, show, false); 40 }; 41 } 42 43 renderFonts() { 44 const { fontData, fontOptions, onPreviewTextChange } = this.props; 45 46 const fonts = fontData.allFonts; 47 48 if (!fonts.length) { 49 return null; 50 } 51 52 return Accordion({ 53 items: [ 54 { 55 header: getStr("fontinspector.allFontsOnPageHeader"), 56 id: "font-list-details", 57 component: FontList, 58 componentProps: { 59 fontOptions, 60 fonts, 61 onPreviewTextChange, 62 onToggleFontHighlight: this.onToggleFontHighlightGlobal, 63 }, 64 opened: false, 65 }, 66 ], 67 }); 68 } 69 70 render() { 71 return dom.div( 72 { 73 id: "font-container", 74 }, 75 this.renderFonts() 76 ); 77 } 78 } 79 80 module.exports = FontOverview;