tor-browser

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

Individuals.js (2061B)


      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 file,
      3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 "use strict";
      6 
      7 const {
      8  Component,
      9  createFactory,
     10 } = require("resource://devtools/client/shared/vendor/react.mjs");
     11 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs");
     12 const Tree = createFactory(
     13  require("resource://devtools/client/shared/components/VirtualizedTree.js")
     14 );
     15 const DominatorTreeItem = createFactory(
     16  require("resource://devtools/client/memory/components/DominatorTreeItem.js")
     17 );
     18 const {
     19  TREE_ROW_HEIGHT,
     20 } = require("resource://devtools/client/memory/constants.js");
     21 const models = require("resource://devtools/client/memory/models.js");
     22 
     23 /**
     24 * The list of individuals in a census group.
     25 */
     26 class Individuals extends Component {
     27  static get propTypes() {
     28    return {
     29      onViewSourceInDebugger: PropTypes.func.isRequired,
     30      onFocus: PropTypes.func.isRequired,
     31      individuals: models.individuals,
     32      dominatorTree: models.dominatorTreeModel,
     33    };
     34  }
     35 
     36  render() {
     37    const { individuals, dominatorTree, onViewSourceInDebugger, onFocus } =
     38      this.props;
     39 
     40    return Tree({
     41      key: "individuals-tree",
     42      autoExpandDepth: 0,
     43      preventNavigationOnArrowRight: false,
     44      focused: individuals.focused,
     45      getParent: () => null,
     46      getChildren: () => [],
     47      isExpanded: () => false,
     48      onExpand: () => {},
     49      onCollapse: () => {},
     50      onFocus,
     51      renderItem: (item, depth, focused, _, expanded) => {
     52        return DominatorTreeItem({
     53          item,
     54          depth,
     55          focused,
     56          arrow: undefined,
     57          expanded,
     58          getPercentSize: size =>
     59            (size / dominatorTree.root.retainedSize) * 100,
     60          onViewSourceInDebugger,
     61        });
     62      },
     63      getRoots: () => individuals.nodes,
     64      getKey: node => node.nodeId,
     65      itemHeight: TREE_ROW_HEIGHT,
     66    });
     67  }
     68 }
     69 
     70 module.exports = Individuals;