tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

DeviceInfo.js (1474B)


      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  createElement,
      9  Fragment,
     10  PureComponent,
     11 } = require("resource://devtools/client/shared/vendor/react.mjs");
     12 const dom = require("resource://devtools/client/shared/vendor/react-dom-factories.js");
     13 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs");
     14 
     15 const {
     16  parseUserAgent,
     17 } = require("resource://devtools/client/responsive/utils/ua.js");
     18 const Types = require("resource://devtools/client/responsive/types.js");
     19 
     20 class DeviceInfo extends PureComponent {
     21  static get propTypes() {
     22    return {
     23      device: PropTypes.shape(Types.devices).isRequired,
     24    };
     25  }
     26 
     27  renderBrowser({ name }) {
     28    return dom.span({
     29      className: `device-browser ${name.toLowerCase()}`,
     30    });
     31  }
     32 
     33  renderOS({ name, version }) {
     34    const text = version ? `${name} ${version}` : name;
     35    return dom.span({ className: "device-os" }, text);
     36  }
     37 
     38  render() {
     39    const { device } = this.props;
     40    const { browser, os } = parseUserAgent(device.userAgent);
     41 
     42    return createElement(
     43      Fragment,
     44      null,
     45      browser ? this.renderBrowser(browser) : dom.span(),
     46      dom.span({ className: "device-name" }, device.name),
     47      os ? this.renderOS(os) : dom.span()
     48    );
     49  }
     50 }
     51 
     52 module.exports = DeviceInfo;