|
1 | 1 | /* eslint-disable react/forbid-prop-types */ |
2 | | -import React, { useMemo, useState } from 'react'; |
| 2 | +import React, { useCallback, useMemo, useState } from 'react'; |
3 | 3 | import PropTypes from 'prop-types'; |
4 | 4 |
|
5 | 5 | import { capitalize, toString } from 'lodash'; |
@@ -93,10 +93,15 @@ const FilterBar = ({ |
93 | 93 | }, |
94 | 94 | ]; |
95 | 95 |
|
| 96 | + const handleFilterToggle = useCallback((event) => { |
| 97 | + onFilterChange(event); |
| 98 | + setOpen(false); |
| 99 | + }, [onFilterChange]); |
| 100 | + |
96 | 101 | return ( |
97 | 102 | <Collapsible.Advanced |
98 | 103 | open={isOpen} |
99 | | - onToggle={() => setOpen(!isOpen)} |
| 104 | + onToggle={setOpen} |
100 | 105 | className="filter-bar collapsible-card-lg border-0" |
101 | 106 | > |
102 | 107 | <Collapsible.Trigger className="collapsible-trigger border-0"> |
@@ -126,7 +131,7 @@ const FilterBar = ({ |
126 | 131 | name={value.name} |
127 | 132 | className="d-flex flex-column list-group list-group-flush" |
128 | 133 | value={selectedFilters[value.name]} |
129 | | - onChange={onFilterChange} |
| 134 | + onChange={handleFilterToggle} |
130 | 135 | > |
131 | 136 | {value.filters.map(filterName => { |
132 | 137 | const element = allFilters.find(obj => obj.id === filterName); |
@@ -159,7 +164,7 @@ const FilterBar = ({ |
159 | 164 | name="cohort" |
160 | 165 | className="d-flex flex-column list-group list-group-flush w-100" |
161 | 166 | value={selectedFilters.cohort} |
162 | | - onChange={onFilterChange} |
| 167 | + onChange={handleFilterToggle} |
163 | 168 | > |
164 | 169 | <ActionItem |
165 | 170 | id="all-groups" |
|
0 commit comments