diff --git a/src/components/categorical/categorical.js b/src/components/categorical/categorical.js
index 22f7b203..05c6d476 100644
--- a/src/components/categorical/categorical.js
+++ b/src/components/categorical/categorical.js
@@ -16,6 +16,12 @@ class Category extends React.Component {
colorAccessor: this.props.metadataField
})
}
+ toggleAll() {
+ this.props.dispatch({
+ type: "categorical metadata filter all of these",
+ metadataField: this.props.metadataField
+ })
+ }
render() {
return (
{
action.type === "graph brush deselect" ||
action.type === "categorical metadata filter deselect" ||
action.type === "categorical metadata filter select" ||
- action.type === "categorical metadata filter only this"
+ action.type === "categorical metadata filter only this" ||
+ action.type === "categorical metadata filter all of these"
;
if (
@@ -158,8 +159,19 @@ const updateCellSelectionMiddleware = (store) => {
...s.controls.categoricalAsBooleansMap,
[action.metadataField]: metadataFieldWithOnlyThisValueSelected
}
- console.log('within', metadataFieldWithOnlyThisValueSelected)
+ } else if (action.type === "categorical metadata filter all of these") {
+ const metadataFieldWithAllOfTheseValueSelected = {};
+
+ /* set EVERYTHING to false in this intermediate object */
+ _.each(s.controls.categoricalAsBooleansMap[action.metadataField], (isActive, option) => {
+ metadataFieldWithAllOfTheseValueSelected[option] = true;
+ })
+
+ newCategoricalAsBooleansMap = {
+ ...s.controls.categoricalAsBooleansMap,
+ [action.metadataField]: metadataFieldWithAllOfTheseValueSelected
+ }
}
const inactiveCategories = [];
diff --git a/src/reducers/controls.js b/src/reducers/controls.js
index eb59c160..590065fb 100644
--- a/src/reducers/controls.js
+++ b/src/reducers/controls.js
@@ -94,6 +94,11 @@ const Controls = (state = {
categoricalAsBooleansMap: action.newCategoricalAsBooleansMap, /* this comes from middleware */
currentCellSelection: action.newSelection /* this comes from middleware */
})
+ case "categorical metadata filter all of these":
+ return Object.assign({}, state, {
+ categoricalAsBooleansMap: action.newCategoricalAsBooleansMap, /* this comes from middleware */
+ currentCellSelection: action.newSelection /* this comes from middleware */
+ })
/*******************************
Color Scale
*******************************/