File tree Expand file tree Collapse file tree 2 files changed +13
-1
lines changed
packages/kit-headless/src/components/popover Expand file tree Collapse file tree 2 files changed +13
-1
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' @qwik-ui/headless ' : patch
3
+ ---
4
+
5
+ fix: popover opening immediately in CSR
Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ export function usePopover(popovertarget: string) {
21
21
const didInteractSig = useSignal < boolean > ( false ) ;
22
22
const popoverSig = useSignal < HTMLElement | null > ( null ) ;
23
23
const initialClickSig = useSignal < boolean > ( false ) ;
24
+ const isCSRSig = useSignal < boolean > ( false ) ;
24
25
25
26
const loadPolyfill$ = $ ( async ( ) => {
26
27
await import ( '@oddbird/popover-polyfill' ) ;
@@ -43,6 +44,12 @@ export function usePopover(popovertarget: string) {
43
44
didInteractSig . value = true ;
44
45
} ) ;
45
46
47
+ useTask$ ( ( ) => {
48
+ if ( isBrowser ) {
49
+ isCSRSig . value = true ;
50
+ }
51
+ } ) ;
52
+
46
53
useTask$ ( async ( { track } ) => {
47
54
track ( ( ) => didInteractSig . value ) ;
48
55
@@ -52,7 +59,7 @@ export function usePopover(popovertarget: string) {
52
59
if ( ! popoverSig . value ) {
53
60
popoverSig . value = document . getElementById ( popovertarget ) ;
54
61
55
- if ( ! initialClickSig . value ) {
62
+ if ( ! initialClickSig . value && ! isCSRSig . value ) {
56
63
popoverSig . value ?. showPopover ( ) ;
57
64
}
58
65
}
You can’t perform that action at this time.
0 commit comments