Skip to content

Commit 492707b

Browse files
authored
fix: improve disabled state handling for Select.Trigger (#1134)
1 parent a2708f8 commit 492707b

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

.changeset/eager-colts-clean.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@qwik-ui/headless': patch
3+
---
4+
5+
Fix disabled state handling for Select.Trigger

packages/kit-headless/src/components/select/select-trigger.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
Slot,
44
component$,
55
sync$,
6+
useComputed$,
67
useContext,
78
useSignal,
89
type PropsOf,
@@ -27,6 +28,10 @@ export const HSelectTrigger = component$<SelectTriggerProps>((props) => {
2728
const contextRefOpts = { context, givenContextRef: context.triggerRef };
2829
const triggerRef = useCombinedRef(props.ref, contextRefOpts);
2930

31+
const isDisabled = useComputed$(() =>
32+
context.isDisabledSig.value || props.disabled ? true : undefined,
33+
);
34+
3035
const handleClickSync$ = sync$((e: MouseEvent) => {
3136
e.preventDefault();
3237
});
@@ -132,15 +137,15 @@ export const HSelectTrigger = component$<SelectTriggerProps>((props) => {
132137
onKeyDown$={[handleKeyDownSync$, handleKeyDown$, props.onKeyDown$]}
133138
data-open={context.isListboxOpenSig.value ? '' : undefined}
134139
data-closed={!context.isListboxOpenSig.value ? '' : undefined}
135-
data-disabled={context.isDisabledSig.value ? '' : undefined}
140+
data-disabled={isDisabled.value ? '' : undefined}
136141
data-invalid={context.isInvalidSig?.value ? '' : undefined}
137142
aria-labelledby={`${valueId} ${labelId} `}
138143
aria-describedby={`${descriptionId}
139144
${errorMessageId}`}
140145
aria-expanded={context.isListboxOpenSig.value ? true : false}
141146
aria-haspopup="listbox"
142147
aria-controls={panelId}
143-
disabled={context.isDisabledSig.value ? true : undefined}
148+
disabled={isDisabled.value}
144149
preventdefault:blur
145150
>
146151
<Slot />

0 commit comments

Comments
 (0)