Add support for only filtering available options in the UserListPicker

Signed-off-by: Mike Lewis <mtlewis@users.noreply.github.com>
Co-authored-by: Tim Hansen <timbonicush@spotify.com>
Co-authored-by: Himanshu Mishra <himanshum@spotify.com>
This commit is contained in:
Mike Lewis
2021-06-04 18:16:05 +01:00
committed by Tim Hansen
parent 4f5ef39cb9
commit fbe180aa87
@@ -106,13 +106,27 @@ function getFilterGroups(orgName: string | undefined): ButtonGroup[] {
type UserListPickerProps = {
initialFilter?: UserListFilterKind;
availableFilters?: UserListFilterKind[];
};
export const UserListPicker = ({ initialFilter }: UserListPickerProps) => {
export const UserListPicker = ({
initialFilter,
availableFilters,
}: UserListPickerProps) => {
const classes = useStyles();
const configApi = useApi(configApiRef);
const orgName = configApi.getOptionalString('organization.name') ?? 'Company';
const filterGroups = getFilterGroups(orgName);
// Remove group items that aren't in availableFilters and exclude
// any now-empty groups.
const filterGroups = getFilterGroups(orgName)
.map(filterGroup => ({
...filterGroup,
items: filterGroup.items.filter(
({ id }) => !availableFilters || availableFilters.includes(id),
),
}))
.filter(({ items }) => !!items.length);
const { value: user } = useOwnUser();
const { isStarredEntity } = useStarredEntities();