Spaces:
Build error
Build error
| import { Autocomplete, AutocompleteItem } from "@heroui/react"; | |
| import { ReactNode } from "react"; | |
| import { OptionalTag } from "./optional-tag"; | |
| import { cn } from "#/utils/utils"; | |
| interface SettingsDropdownInputProps { | |
| testId: string; | |
| name: string; | |
| items: { key: React.Key; label: string }[]; | |
| label?: ReactNode; | |
| wrapperClassName?: string; | |
| placeholder?: string; | |
| showOptionalTag?: boolean; | |
| isDisabled?: boolean; | |
| defaultSelectedKey?: string; | |
| selectedKey?: string; | |
| isClearable?: boolean; | |
| onSelectionChange?: (key: React.Key | null) => void; | |
| onInputChange?: (value: string) => void; | |
| defaultFilter?: (textValue: string, inputValue: string) => boolean; | |
| } | |
| export function SettingsDropdownInput({ | |
| testId, | |
| label, | |
| wrapperClassName, | |
| name, | |
| items, | |
| placeholder, | |
| showOptionalTag, | |
| isDisabled, | |
| defaultSelectedKey, | |
| selectedKey, | |
| isClearable, | |
| onSelectionChange, | |
| onInputChange, | |
| defaultFilter, | |
| }: SettingsDropdownInputProps) { | |
| return ( | |
| <label className={cn("flex flex-col gap-2.5", wrapperClassName)}> | |
| {label && ( | |
| <div className="flex items-center gap-1"> | |
| <span className="text-sm">{label}</span> | |
| {showOptionalTag && <OptionalTag />} | |
| </div> | |
| )} | |
| <Autocomplete | |
| aria-label={typeof label === "string" ? label : name} | |
| data-testid={testId} | |
| name={name} | |
| defaultItems={items} | |
| defaultSelectedKey={defaultSelectedKey} | |
| selectedKey={selectedKey} | |
| onSelectionChange={onSelectionChange} | |
| onInputChange={onInputChange} | |
| isClearable={isClearable} | |
| isDisabled={isDisabled} | |
| placeholder={placeholder} | |
| className="w-full" | |
| classNames={{ | |
| popoverContent: "bg-tertiary rounded-xl border border-[#717888]", | |
| }} | |
| inputProps={{ | |
| classNames: { | |
| inputWrapper: | |
| "bg-tertiary border border-[#717888] h-10 w-full rounded p-2 placeholder:italic", | |
| }, | |
| }} | |
| defaultFilter={defaultFilter} | |
| > | |
| {(item) => ( | |
| <AutocompleteItem key={item.key}>{item.label}</AutocompleteItem> | |
| )} | |
| </Autocomplete> | |
| </label> | |
| ); | |
| } | |