Source code

Revision control

Copy as Markdown

Other Tools

/* 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 {
Component,
createFactory,
const {
connect,
const {
div,
const {
L10N,
const {
PANELS,
const Tabbar = createFactory(
);
const TabPanel = createFactory(
);
loader.lazyGetter(this, "SearchPanel", function () {
return createFactory(
);
});
loader.lazyGetter(this, "RequestBlockingPanel", function () {
return createFactory(
);
});
loader.lazyGetter(this, "HTTPCustomRequestPanel", function () {
return createFactory(
);
});
class NetworkActionBar extends Component {
static get propTypes() {
return {
connector: PropTypes.object.isRequired,
selectedActionBarTabId: PropTypes.string,
selectActionBarTab: PropTypes.func.isRequired,
toggleNetworkActionBar: PropTypes.func.isRequired,
};
}
render() {
const {
connector,
selectedActionBarTabId,
selectActionBarTab,
toggleNetworkActionBar,
} = this.props;
// The request blocking and search panels are available behind a pref
const showBlockingPanel = Services.prefs.getBoolPref(
"devtools.netmonitor.features.requestBlocking"
);
const showSearchPanel = Services.prefs.getBoolPref(
"devtools.netmonitor.features.search"
);
const showNewCustomRequestPanel = Services.prefs.getBoolPref(
"devtools.netmonitor.features.newEditAndResend"
);
return div(
{ className: "network-action-bar" },
Tabbar(
{
activeTabId: selectedActionBarTabId,
onSelect: id => selectActionBarTab(id),
sidebarToggleButton: {
collapsed: false,
collapsePaneTitle: L10N.getStr("collapseActionPane"),
expandPaneTitle: "",
onClick: toggleNetworkActionBar,
alignRight: true,
canVerticalSplit: false,
},
},
showNewCustomRequestPanel &&
TabPanel(
{
id: PANELS.HTTP_CUSTOM_REQUEST,
title: L10N.getStr("netmonitor.actionbar.HTTPCustomRequest"),
className: "network-action-bar-HTTP-custom-request",
},
HTTPCustomRequestPanel({ connector })
),
showSearchPanel &&
TabPanel(
{
id: PANELS.SEARCH,
title: L10N.getStr("netmonitor.actionbar.search"),
className: "network-action-bar-search",
},
SearchPanel({ connector })
),
showBlockingPanel &&
TabPanel(
{
id: PANELS.BLOCKING,
title: L10N.getStr("netmonitor.actionbar.requestBlocking2"),
className: "network-action-bar-blocked",
},
RequestBlockingPanel()
)
)
);
}
}
module.exports = connect(
state => ({
selectedActionBarTabId: state.ui.selectedActionBarTabId,
}),
dispatch => ({
selectActionBarTab: id => dispatch(Actions.selectActionBarTab(id)),
toggleNetworkActionBar: () => dispatch(Actions.toggleNetworkActionBar()),
})
)(NetworkActionBar);