import { Stack, Button, Divider, Group, ComboboxItem, Text } from '@mantine/core'; import { PlusIcon } from '@phosphor-icons/react'; import React, { useMemo } from 'react'; import Typeahead, { TypeaheadOption } from '@/components/typeahead'; interface TeamSelectionViewProps { options: ComboboxItem[]; onSelect: (teamId: string | undefined) => void; } const TeamSelectionView: React.FC = React.memo(({ options, onSelect }) => { const [selectedTeam, setSelectedTeam] = React.useState(null); const searchTeams = async (query: string): Promise[]> => { if (!query.trim()) return []; const filtered = options.filter(option => option.label.toLowerCase().includes(query.toLowerCase()) ); return filtered.map(option => ({ id: String(option.value), data: option })); }; const handleTeamSelect = (option: TypeaheadOption) => { setSelectedTeam(option.data); }; const renderTeamOption = (option: TypeaheadOption) => { return ( {option.data.label} ); }; const formatTeam = (option: TypeaheadOption) => { return option.data.label; }; const handleCreateNewTeamClicked = () => onSelect(undefined); const handleSelectExistingTeam = () => onSelect(selectedTeam?.value); return ( ); }); TeamSelectionView.displayName = 'TeamSelectionView'; export default TeamSelectionView;