Add initial filter prop for lifecycle picker

Signed-off-by: Sarah Medeiros <smedeiros@wayfair.com>
This commit is contained in:
Sarah Medeiros
2023-01-13 12:01:36 -05:00
parent 3c1b9a6be4
commit aadbec389b
2 changed files with 25 additions and 2 deletions
@@ -210,4 +210,21 @@ describe('<EntityLifecyclePicker/>', () => {
lifecycles: undefined,
});
});
it('responds to initialFilter prop', () => {
const updateFilters = jest.fn();
render(
<MockEntityListContextProvider
value={{
entities: sampleEntities,
backendEntities: sampleEntities,
updateFilters,
}}
>
<EntityLifecyclePicker initialFilter={['production']} />
</MockEntityListContextProvider>,
);
expect(updateFilters).toHaveBeenLastCalledWith({
lifecycles: new EntityLifecycleFilter(['production']),
});
});
});
@@ -47,7 +47,13 @@ const icon = <CheckBoxOutlineBlankIcon fontSize="small" />;
const checkedIcon = <CheckBoxIcon fontSize="small" />;
/** @public */
export const EntityLifecyclePicker = () => {
export type EntityLifecyclePickerProps = {
initialFilter?: string[];
};
/** @public */
export const EntityLifecyclePicker = (props: EntityLifecyclePickerProps) => {
const { initialFilter } = props;
const classes = useStyles();
const {
updateFilters,
@@ -64,7 +70,7 @@ export const EntityLifecyclePicker = () => {
const [selectedLifecycles, setSelectedLifecycles] = useState(
queryParamLifecycles.length
? queryParamLifecycles
: filters.lifecycles?.values ?? [],
: filters.lifecycles?.values ?? (initialFilter || []),
);
// Set selected lifecycles on query parameter updates; this happens at initial page load and from