Skip to content

Commit 52edf4f

Browse files
fix: popover does not open programmatically on CSR navigation
1 parent 1ff2d38 commit 52edf4f

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

.changeset/six-cheetahs-bow.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: popover opening immediately in CSR

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export function usePopover(popovertarget: string) {
2121
const didInteractSig = useSignal<boolean>(false);
2222
const popoverSig = useSignal<HTMLElement | null>(null);
2323
const initialClickSig = useSignal<boolean>(false);
24+
const isCSRSig = useSignal<boolean>(false);
2425

2526
const loadPolyfill$ = $(async () => {
2627
await import('@oddbird/popover-polyfill');
@@ -43,6 +44,12 @@ export function usePopover(popovertarget: string) {
4344
didInteractSig.value = true;
4445
});
4546

47+
useTask$(() => {
48+
if (isBrowser) {
49+
isCSRSig.value = true;
50+
}
51+
});
52+
4653
useTask$(async ({ track }) => {
4754
track(() => didInteractSig.value);
4855

@@ -52,7 +59,7 @@ export function usePopover(popovertarget: string) {
5259
if (!popoverSig.value) {
5360
popoverSig.value = document.getElementById(popovertarget);
5461

55-
if (!initialClickSig.value) {
62+
if (!initialClickSig.value && !isCSRSig.value) {
5663
popoverSig.value?.showPopover();
5764
}
5865
}

0 commit comments

Comments
 (0)