summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/components/filter-buttons.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/netmonitor/components/filter-buttons.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/netmonitor/components/filter-buttons.js')
-rw-r--r--devtools/client/netmonitor/components/filter-buttons.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/components/filter-buttons.js b/devtools/client/netmonitor/components/filter-buttons.js
new file mode 100644
index 000000000..f24db8c53
--- /dev/null
+++ b/devtools/client/netmonitor/components/filter-buttons.js
@@ -0,0 +1,49 @@
+/* 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 { DOM, PropTypes } = require("devtools/client/shared/vendor/react");
+const { connect } = require("devtools/client/shared/vendor/react-redux");
+const { L10N } = require("../l10n");
+const Actions = require("../actions/index");
+
+const { button, div } = DOM;
+
+function FilterButtons({
+ filterTypes,
+ triggerFilterType,
+}) {
+ const buttons = filterTypes.entrySeq().map(([type, checked]) => {
+ let classList = ["menu-filter-button"];
+ checked && classList.push("checked");
+
+ return button({
+ id: `requests-menu-filter-${type}-button`,
+ className: classList.join(" "),
+ "data-key": type,
+ onClick: triggerFilterType,
+ onKeyDown: triggerFilterType,
+ "aria-pressed": checked,
+ }, L10N.getStr(`netmonitor.toolbar.filter.${type}`));
+ }).toArray();
+
+ return div({ id: "requests-menu-filter-buttons" }, buttons);
+}
+
+FilterButtons.PropTypes = {
+ state: PropTypes.object.isRequired,
+ triggerFilterType: PropTypes.func.iRequired,
+};
+
+module.exports = connect(
+ (state) => ({ filterTypes: state.filters.types }),
+ (dispatch) => ({
+ triggerFilterType: (evt) => {
+ if (evt.type === "keydown" && (evt.key !== "" || evt.key !== "Enter")) {
+ return;
+ }
+ dispatch(Actions.toggleFilterType(evt.target.dataset.key));
+ },
+ })
+)(FilterButtons);