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 *******************************/