This commit is contained in:
@@ -34,35 +34,36 @@ export function Dropdown({
|
||||
onChange,
|
||||
error,
|
||||
className = '',
|
||||
selectClassName = ''
|
||||
selectClassName = '',
|
||||
}: Readonly<DropdownProps>) {
|
||||
const containerSizeClass = {
|
||||
sm: 'max-w-xs',
|
||||
md: 'max-w-sm',
|
||||
lg: 'max-w-md',
|
||||
full: 'max-w-none'
|
||||
full: 'max-w-none',
|
||||
}[size];
|
||||
|
||||
const selectSizeClass = {
|
||||
sm: 'h-8 !text-xs',
|
||||
md: 'h-10 text-sm',
|
||||
lg: 'h-12 text-sm',
|
||||
full: 'h-10 text-sm'
|
||||
full: 'h-10 text-sm',
|
||||
}[size];
|
||||
|
||||
const handleChange: ChangeEventHandler<HTMLSelectElement> = (event) => {
|
||||
onChange?.(event.target.value);
|
||||
};
|
||||
|
||||
const wrapperClass = layout === 'inline'
|
||||
? 'inline-flex w-auto items-center gap-2'
|
||||
: 'block w-full gap-1';
|
||||
const wrapperClass =
|
||||
layout === 'inline' ? 'inline-flex w-auto items-center gap-2' : 'block w-full gap-1';
|
||||
|
||||
const selectWrapperClass = layout === 'inline' ? 'relative' : 'relative mt-1';
|
||||
const labelClass = layout === 'inline' ? 'text-xs ui-body-secondary' : '';
|
||||
|
||||
return (
|
||||
<label className={`${wrapperClass} text-sm font-medium ${disabled ? 'ui-label-disabled' : 'ui-label'} ${containerSizeClass} ${className}`.trim()}>
|
||||
<label
|
||||
className={`${wrapperClass} text-sm font-medium ${disabled ? 'ui-label-disabled' : 'ui-label'} ${containerSizeClass} ${className}`.trim()}
|
||||
>
|
||||
{label ? <span className={labelClass}>{label}</span> : null}
|
||||
<div className={selectWrapperClass}>
|
||||
<select
|
||||
@@ -78,11 +79,17 @@ export function Dropdown({
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
<span className={`pointer-events-none absolute inset-y-0 right-3 flex items-center ${disabled ? 'ui-label-disabled' : 'ui-body-secondary'}`}>
|
||||
<span
|
||||
className={`pointer-events-none absolute inset-y-0 right-3 flex items-center ${disabled ? 'ui-label-disabled' : 'ui-body-secondary'}`}
|
||||
>
|
||||
<ChevronDownIcon className="h-4 w-4" aria-hidden="true" />
|
||||
</span>
|
||||
</div>
|
||||
{error ? <span className="mt-1 block text-xs" style={{ color: 'var(--error-text)' }}>{error}</span> : null}
|
||||
{error ? (
|
||||
<span className="mt-1 block text-xs" style={{ color: 'var(--error-text)' }}>
|
||||
{error}
|
||||
</span>
|
||||
) : null}
|
||||
</label>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user