summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/net/components/net-info-params.js
blob: 573257b281eebe3839a1e68960617cdb9da747ef (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
48
49
50
51
52
53
54
55
56
57
58
/* 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");

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

/**
 * This template renders list of parameters within a group.
 * It's essentially a list of name + value pairs.
 */
var NetInfoParams = React.createClass({
  displayName: "NetInfoParams",

  propTypes: {
    params: PropTypes.arrayOf(PropTypes.shape({
      name: PropTypes.string.isRequired,
      value: PropTypes.string.isRequired
    })).isRequired,
  },

  render() {
    let params = this.props.params || [];

    params.sort(function (a, b) {
      return a.name > b.name ? 1 : -1;
    });

    let rows = [];
    params.forEach((param, index) => {
      rows.push(
        DOM.tr({key: index},
          DOM.td({className: "netInfoParamName"},
            DOM.span({title: param.name}, param.name)
          ),
          DOM.td({className: "netInfoParamValue"},
            DOM.code({}, param.value)
          )
        )
      );
    });

    return (
      DOM.table({cellPadding: 0, cellSpacing: 0},
        DOM.tbody({},
          rows
        )
      )
    );
  }
});

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