Add support for disabled selects

This commit is contained in:
Justin Edmund 2023-01-05 20:48:53 -08:00
parent 55c99cda58
commit 1206290ede
2 changed files with 21 additions and 4 deletions

View file

@ -24,6 +24,11 @@
} }
} }
&.Disabled:hover {
background-color: var(--input-bg);
cursor: not-allowed;
}
&[data-placeholder] > span:not(.SelectIcon) { &[data-placeholder] > span:not(.SelectIcon) {
color: var(--text-secondary); color: var(--text-secondary);
} }

View file

@ -30,6 +30,14 @@ const Select = React.forwardRef<HTMLButtonElement, Props>(function Select(
const [open, setOpen] = useState(false) const [open, setOpen] = useState(false)
const [value, setValue] = useState('') const [value, setValue] = useState('')
const triggerClasses = classNames(
{
SelectTrigger: true,
Disabled: props.disabled,
},
props.triggerClass
)
useEffect(() => { useEffect(() => {
setOpen(props.open) setOpen(props.open)
}, [props.open]) }, [props.open])
@ -67,14 +75,18 @@ const Select = React.forwardRef<HTMLButtonElement, Props>(function Select(
onOpenChange={props.onOpenChange} onOpenChange={props.onOpenChange}
> >
<RadixSelect.Trigger <RadixSelect.Trigger
className={classNames('SelectTrigger', props.triggerClass)} className={triggerClasses}
placeholder={props.placeholder} placeholder={props.placeholder}
ref={forwardedRef} ref={forwardedRef}
> >
<RadixSelect.Value placeholder={props.placeholder} /> <RadixSelect.Value placeholder={props.placeholder} />
<RadixSelect.Icon className="SelectIcon"> {!props.disabled ? (
<ArrowIcon /> <RadixSelect.Icon className="SelectIcon">
</RadixSelect.Icon> <ArrowIcon />
</RadixSelect.Icon>
) : (
''
)}
</RadixSelect.Trigger> </RadixSelect.Trigger>
<RadixSelect.Portal className="Select"> <RadixSelect.Portal className="Select">