gecko-dev/devtools/client/webconsole/net/components/size-limit.js

63 строки
1.5 KiB
JavaScript

/* 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 represents a size limit notification message
* used e.g. in the Response tab when response body exceeds
* size limit. The message contains a link allowing the user
* to fetch the rest of the data from the backend (debugger server).
*/
var SizeLimit = React.createClass({
propTypes: {
data: PropTypes.object.isRequired,
message: PropTypes.string.isRequired,
link: PropTypes.string.isRequired,
actions: PropTypes.shape({
resolveString: PropTypes.func.isRequired
}),
},
displayName: "SizeLimit",
// Event Handlers
onClickLimit(event) {
let actions = this.props.actions;
let content = this.props.data;
actions.resolveString(content, "text");
},
// Rendering
render() {
let message = this.props.message;
let link = this.props.link;
let reLink = /^(.*)\{\{link\}\}(.*$)/;
let m = message.match(reLink);
return (
DOM.div({className: "netInfoSizeLimit"},
DOM.span({}, m[1]),
DOM.a({
className: "objectLink",
onClick: this.onClickLimit},
link
),
DOM.span({}, m[2])
)
);
}
});
// Exports from this module
module.exports = SizeLimit;