import { createSignal } from 'solid-js' import { createStyles } from '../styles/use-styles' interface SelectOption { value: T label: string } interface SelectProps { label?: string options: Array> value?: T onChange?: (value: T) => void description?: string } export function Select(props: SelectProps) { const styles = createStyles() const [selected, setSelected] = createSignal( props.value || props.options[0]?.value, ) const handleChange = (e: Event) => { const value = (e.target as HTMLSelectElement).value as T setSelected((prev) => (prev !== value ? value : prev)) props.onChange?.(value) } return (
{props.label && ( )} {props.description && (

{props.description}

)}
) }