correctly handle selection of trunctated categories (#781)

This commit is contained in:
Bruce Martin
2019-05-23 08:46:22 -07:00
committed by GitHub
parent 49af278de7
commit ef7c26e799
5 changed files with 56 additions and 35 deletions
+14 -12
View File
@@ -30,15 +30,15 @@ const CategoricalSelection = (
/*
Set the specific category in this field to false
*/
const newCategorySelected = Array.from(
state[action.metadataField].categorySelected
const newCategoryValueSelected = Array.from(
state[action.metadataField].categoryValueSelected
);
newCategorySelected[action.categoryIndex] = true;
newCategoryValueSelected[action.categoryIndex] = true;
const newCategoricalSelection = {
...state,
[action.metadataField]: {
...state[action.metadataField],
categorySelected: newCategorySelected
categoryValueSelected: newCategoryValueSelected
}
};
return newCategoricalSelection;
@@ -48,15 +48,15 @@ const CategoricalSelection = (
/*
Set the specific category in this field to false
*/
const newCategorySelected = Array.from(
state[action.metadataField].categorySelected
const newCategoryValueSelected = Array.from(
state[action.metadataField].categoryValueSelected
);
newCategorySelected[action.categoryIndex] = false;
newCategoryValueSelected[action.categoryIndex] = false;
const newCategoricalSelection = {
...state,
[action.metadataField]: {
...state[action.metadataField],
categorySelected: newCategorySelected
categoryValueSelected: newCategoryValueSelected
}
};
return newCategoricalSelection;
@@ -70,8 +70,9 @@ const CategoricalSelection = (
...state,
[action.metadataField]: {
...state[action.metadataField],
categorySelected: Array.from(
state[action.metadataField].categorySelected
categorySelected: false,
categoryValueSelected: Array.from(
state[action.metadataField].categoryValueSelected
).fill(false)
}
};
@@ -86,8 +87,9 @@ const CategoricalSelection = (
...state,
[action.metadataField]: {
...state[action.metadataField],
categorySelected: Array.from(
state[action.metadataField].categorySelected
categorySelected: true,
categoryValueSelected: Array.from(
state[action.metadataField].categoryValueSelected
).fill(true)
}
};
+3 -1
View File
@@ -183,10 +183,12 @@ const CrossfilterReducer = (
case "categorical metadata filter select":
case "categorical metadata filter deselect": {
const { categoricalSelection } = nextSharedState;
const { world } = prevSharedState;
const cat = categoricalSelection[action.metadataField];
const col = world.obsAnnotations.col(action.metadataField);
return state.select(obsAnnoDimensionName(action.metadataField), {
mode: "exact",
values: ControlsHelpers.selectedValuesForCategory(cat)
values: ControlsHelpers.selectedValuesForCategory(cat, col)
});
}