tor-browser

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

NodeItem.js (1775B)


      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 {
     14  translateNodeFrontToGrip,
     15 } = require("resource://devtools/client/inspector/shared/utils.js");
     16 const { REPS, MODE } = ChromeUtils.importESModule(
     17  "resource://devtools/client/shared/components/reps/index.mjs"
     18 );
     19 const { Rep } = REPS;
     20 const ElementNode = REPS.ElementNode;
     21 
     22 const Types = require("resource://devtools/client/inspector/compatibility/types.js");
     23 
     24 const {
     25  highlightNode,
     26  unhighlightNode,
     27 } = require("resource://devtools/client/inspector/boxmodel/actions/box-model-highlighter.js");
     28 
     29 class NodeItem extends PureComponent {
     30  static get propTypes() {
     31    return {
     32      dispatch: PropTypes.func.isRequired,
     33      node: Types.node.isRequired,
     34      setSelectedNode: PropTypes.func.isRequired,
     35    };
     36  }
     37 
     38  render() {
     39    const { dispatch, node, setSelectedNode } = this.props;
     40 
     41    return dom.li(
     42      { className: "compatibility-node-item" },
     43      Rep({
     44        defaultRep: ElementNode,
     45        mode: MODE.TINY,
     46        object: translateNodeFrontToGrip(node),
     47        onDOMNodeClick: () => {
     48          setSelectedNode(node);
     49          dispatch(unhighlightNode());
     50        },
     51        onDOMNodeMouseOut: () => dispatch(unhighlightNode()),
     52        onDOMNodeMouseOver: () => dispatch(highlightNode(node)),
     53      })
     54    );
     55  }
     56 }
     57 
     58 module.exports = NodeItem;