import { Group } from 'common/group' import { Combobox } from '@headlessui/react' import { InfoTooltip } from 'web/components/info-tooltip' import { CheckIcon, PlusCircleIcon, SelectorIcon, } from '@heroicons/react/outline' import clsx from 'clsx' import { CreateGroupButton } from 'web/components/groups/create-group-button' import { useState } from 'react' import { useMemberGroups } from 'web/hooks/use-group' import { User } from 'common/user' import { searchInAny } from 'common/util/parse' export function GroupSelector(props: { selectedGroup: Group | undefined setSelectedGroup: (group: Group) => void creator: User | null | undefined options: { showSelector: boolean showLabel: boolean ignoreGroupIds?: string[] } }) { const { selectedGroup, setSelectedGroup, creator, options } = props const [isCreatingNewGroup, setIsCreatingNewGroup] = useState(false) const { showSelector, showLabel, ignoreGroupIds } = options const [query, setQuery] = useState('') const memberGroups = (useMemberGroups(creator?.id) ?? []).filter( (group) => !ignoreGroupIds?.includes(group.id) ) const filteredGroups = memberGroups.filter((group) => searchInAny(query, group.name) ) if (!showSelector || !creator) { return ( <>