/** @jsx React.DOM */
var FlowDetailNav = React.createClass({
render: function(){
var items = ["request", "response", "details"].map(function(e){
var str = e.charAt(0).toUpperCase() + e.slice(1);
var className = this.props.active === e ? "active" : "";
var onClick = function(){
this.props.selectTab(e);
return false;
}.bind(this);
return {str};
}.bind(this));
return (
);
}
});
var Headers = React.createClass({
render: function(){
var rows = this.props.message.headers.map(function(header){
return (
{header[0]} |
{header[1]} |
);
})
return (
);
}
})
var FlowDetailRequest = React.createClass({
render: function(){
var flow = this.props.flow;
var first_line = [
flow.request.method,
RequestUtils.pretty_url(flow.request),
"HTTP/"+ flow.response.httpversion.join(".")
].join(" ");
var content = null;
if(flow.request.contentLength > 0){
content = "Request Content Size: "+ formatSize(flow.request.contentLength);
} else {
content = No Content
;
}
//TODO: Styling
return (
);
}
});
var FlowDetailResponse = React.createClass({
render: function(){
var flow = this.props.flow;
var first_line = [
"HTTP/"+ flow.response.httpversion.join("."),
flow.response.code,
flow.response.msg
].join(" ");
var content = null;
if(flow.response.contentLength > 0){
content = "Response Content Size: "+ formatSize(flow.response.contentLength);
} else {
content = No Content
;
}
//TODO: Styling
return (
);
}
});
var FlowDetailConnectionInfo = React.createClass({
render: function(){
return ;
}
});
var tabs = {
request: FlowDetailRequest,
response: FlowDetailResponse,
details: FlowDetailConnectionInfo
};
var FlowDetail = React.createClass({
mixins: [StickyHeadMixin],
render: function(){
var flow = JSON.stringify(this.props.flow, null, 2);
var Tab = tabs[this.props.active];
return (
);
}
});