import React from "react"; import { cn } from "../../lib/cn"; import { checkMark, chevroneDropDownList } from "../../assets/icons/input"; import { useClickOutside } from "../../hooks/useClickOutside"; export interface DropDownListItem { text: string; value: string; } interface DropDownListProps { disabled?: boolean; className?: string; onChange: (state: string) => void; defaultState?: DropDownListItem; items: DropDownListItem[]; } export const DropDownList: React.FC = ({ // disabled = false, className = "", onChange, defaultState, items = [{ text: "", value: "" }], }) => { if (items.length == 0) items.push({ text: "", value: "" }); const [value, setValue] = React.useState(defaultState != undefined ? defaultState : items[0]); const [active, setActive] = React.useState(false); React.useEffect(() => onChange(value.value), [value]); const ref = React.useRef(null); useClickOutside(ref, () => { setActive(false); }); return (
{ setActive(!active); } }> {value.text}
{items.map((v, i) =>
{ setValue(v); setActive(false); }}> {v.text} {v.text == value.text && }
)}
); };