tor-browser

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

BrowserIcon.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  PureComponent,
      9 } = require("resource://devtools/client/shared/vendor/react.mjs");
     10 const dom = require("resource://devtools/client/shared/vendor/react-dom-factories.js");
     11 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs");
     12 
     13 const Types = require("resource://devtools/client/inspector/compatibility/types.js");
     14 
     15 const ICONS = {
     16  firefox: {
     17    src: "chrome://devtools/skin/images/browsers/firefox.svg",
     18    isMobileIconNeeded: false,
     19  },
     20  firefox_android: {
     21    src: "chrome://devtools/skin/images/browsers/firefox.svg",
     22    isMobileIconNeeded: true,
     23  },
     24  chrome: {
     25    src: "chrome://devtools/skin/images/browsers/chrome.svg",
     26    isMobileIconNeeded: false,
     27  },
     28  chrome_android: {
     29    src: "chrome://devtools/skin/images/browsers/chrome.svg",
     30    isMobileIconNeeded: true,
     31  },
     32  safari: {
     33    src: "chrome://devtools/skin/images/browsers/safari.svg",
     34    isMobileIconNeeded: false,
     35  },
     36  safari_ios: {
     37    src: "chrome://devtools/skin/images/browsers/safari.svg",
     38    isMobileIconNeeded: true,
     39  },
     40  edge: {
     41    src: "chrome://devtools/skin/images/browsers/edge.svg",
     42    isMobileIconNeeded: false,
     43  },
     44  ie: {
     45    src: "chrome://devtools/skin/images/browsers/ie.svg",
     46    isMobileIconNeeded: false,
     47  },
     48 };
     49 
     50 class BrowserIcon extends PureComponent {
     51  static get propTypes() {
     52    return {
     53      id: Types.browser.id,
     54      title: PropTypes.string,
     55      name: PropTypes.string,
     56    };
     57  }
     58 
     59  render() {
     60    const { id, name, title } = this.props;
     61 
     62    const icon = ICONS[id];
     63 
     64    return dom.span(
     65      {
     66        className:
     67          "compatibility-browser-icon" +
     68          (icon.isMobileIconNeeded
     69            ? " compatibility-browser-icon--mobile"
     70            : ""),
     71      },
     72      dom.img({
     73        className: "compatibility-browser-icon__image",
     74        alt: name || title,
     75        title,
     76        src: icon.src,
     77      })
     78    );
     79  }
     80 }
     81 
     82 module.exports = BrowserIcon;