Skip to content

Commit 3a7a31b

Browse files
authored
Merge pull request #322 from thejackshelton/select-component
2 parents 3741bca + 100ecc3 commit 3a7a31b

File tree

1 file changed

+16
-9
lines changed
  • packages/kit-headless/src/components/select

1 file changed

+16
-9
lines changed

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

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
useOnWindow,
1111
useStore,
1212
useVisibleTask$,
13+
QwikIntrinsicElements,
1314
} from '@builder.io/qwik';
1415
import { computePosition, flip } from '@floating-ui/dom';
1516

@@ -70,17 +71,22 @@ export const SelectRoot = component$(
7071
const listBox = track(() => contextService.listBoxRef.value);
7172
const expanded = track(() => isExpanded.value);
7273

73-
if (expanded && trigger && listBox) {
74-
updatePosition(trigger, listBox);
74+
if (!trigger || !listBox) return;
75+
76+
if (expanded === true) {
77+
listBox.style.visibility = 'hidden';
78+
79+
await updatePosition(trigger, listBox);
80+
81+
listBox.style.visibility = 'visible';
82+
83+
listBox?.focus();
7584
}
7685

86+
7787
if (expanded === false) {
7888
trigger?.focus();
7989
}
80-
81-
if (expanded === true) {
82-
listBox?.focus();
83-
}
8490
});
8591

8692
useOnWindow(
@@ -113,9 +119,9 @@ export const SelectRoot = component$(
113119
}
114120
);
115121

116-
export interface TriggerProps extends StyleProps {
122+
export type TriggerProps = {
117123
disabled?: boolean;
118-
}
124+
} & QwikIntrinsicElements['button'];
119125

120126
export const SelectTrigger = component$(
121127
({ disabled, ...props }: TriggerProps) => {
@@ -128,7 +134,8 @@ export const SelectTrigger = component$(
128134
ref={ref}
129135
aria-expanded={contextService.isExpanded.value}
130136
disabled={disabled}
131-
onClick$={() => {
137+
onClick$={(e) => {
138+
e.stopPropagation();
132139
contextService.isExpanded.value = !contextService.isExpanded.value;
133140
}}
134141
onKeyDown$={(e) => {

0 commit comments

Comments
 (0)