import * as React from "react"; import { useEvent } from "../../hooks/useEvent"; interface Props { id: string; default: string; onSelect: (value: string) => void; _display: (data: any) => string; staticlistOptions?: { [key: string]: string }; _data: { id: string }[]; placeholder?: string; } const Dynamic = React.forwardRef(function Dynamic( { id, default: defaultValue, _display, _data, staticlistOptions, onSelect, placeholder, ...props }: Props, ref: React.ForwardedRef, ) { const [value, setValue] = React.useState(defaultValue); React.useEffect(() => { if (defaultValue) { setValue(defaultValue); } }, []); useEvent( id, "clear", React.useCallback(() => { setValue(""); }, []), ); return ( ); }); const Basic = React.forwardRef(function Basic( { id, default: defaultValue, onSelect, staticlistOptions, placeholder, ...props }: Props, ref: React.ForwardedRef, ) { const [value, setValue] = React.useState(defaultValue); React.useEffect(() => { if (defaultValue) { setValue(defaultValue); } const handleClear = () => { setValue(""); }; document.addEventListener(`${id}:clear`, handleClear); return () => { document.removeEventListener(`${id}:clear`, handleClear); }; }, []); return ( ); }); export const Dropdown = React.forwardRef(function Dropdown( { type, ...props }: { type: "basic" | "dynamic"; } & Props, ref: React.ForwardedRef, ) { if (type === "dynamic") { return ; } return ; });