"use client" import * as React from "react" import { Check, ChevronsUpDown } from "lucide-react" import { cn } from "@/lib/utils" import { Button } from "@/components/ui/button" import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, } from "@/components/ui/command" import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover" interface User { id: number name: string email: string department?: string } interface UserComboboxProps { users: User[] value: number | null onChange: (value: number) => void placeholder?: string disabled?: boolean } export function UserCombobox({ users, value, onChange, placeholder = "담당자 선택...", disabled = false }: UserComboboxProps) { const [open, setOpen] = React.useState(false) const [inputValue, setInputValue] = React.useState("") const selectedUser = React.useMemo(() => { return users.find(user => user.id === value) }, [users, value]) return ( 검색 결과가 없습니다. {users.map((user) => ( { onChange(user.id) setOpen(false) }} >
{user.name} {user.department && ( ({user.department}) )}
{user.email}
))}
) }