summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/net/components/net-info-group-list.js
blob: 247a23bb7c3f5b71a12e280998d82e6fefa43234 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";

const React = require("devtools/client/shared/vendor/react");
const NetInfoGroup = React.createFactory(require("./net-info-group"));

// Shortcuts
const DOM = React.DOM;
const PropTypes = React.PropTypes;

/**
 * This template is responsible for rendering sections/groups inside tabs.
 * It's used e.g to display Response and Request headers as separate groups.
 */
var NetInfoGroupList = React.createClass({
  propTypes: {
    groups: PropTypes.array.isRequired,
  },

  displayName: "NetInfoGroupList",

  render() {
    let groups = this.props.groups;

    // Filter out empty groups.
    groups = groups.filter(group => {
      return group && ((group.params && group.params.length) || group.content);
    });

    // Render groups
    groups = groups.map(group => {
      group.type = group.key;
      return NetInfoGroup(group);
    });

    return (
      DOM.div({className: "netInfoGroupList"},
        groups
      )
    );
  }
});

// Exports from this module
module.exports = NetInfoGroupList;