Skip to content

Commit 24914f3

Browse files
committed
refactor(CDropdown): update click outside event listener
1 parent 943014c commit 24914f3

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

src/components/dropdown/CDropdown.tsx

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,17 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
136136
)
137137

138138
useEffect(() => {
139-
window.addEventListener('click', handleClickOutside)
140-
window.addEventListener('keyup', handleKeyup)
139+
_visible &&
140+
setTimeout(() => {
141+
window.addEventListener('click', handleClickOutside)
142+
window.addEventListener('keyup', handleKeyup)
143+
})
141144

142145
return () => {
143146
window.removeEventListener('click', handleClickOutside)
144147
window.removeEventListener('keyup', handleKeyup)
145148
}
146-
})
149+
}, [_visible])
147150

148151
useEffect(() => {
149152
setVisible(visible)
@@ -165,24 +168,23 @@ export const CDropdown = forwardRef<HTMLDivElement | HTMLLIElement, CDropdownPro
165168
}
166169
}
167170

171+
const dropdownContent = () => {
172+
return variant === 'input-group' ? (
173+
<>{children}</>
174+
) : (
175+
<Component className={_className} {...rest} ref={forkedRef}>
176+
{children}
177+
</Component>
178+
)
179+
}
180+
168181
return popper ? (
169182
<CDropdownContext.Provider value={contextValues}>
170-
<Manager>
171-
{/* TODO: find solution how to handle click outside */}
172-
{variant === 'input-group' ? (
173-
<>{children}</>
174-
) : (
175-
<Component className={_className} {...rest} ref={forkedRef}>
176-
{children}
177-
</Component>
178-
)}
179-
</Manager>
183+
<Manager>{dropdownContent()}</Manager>
180184
</CDropdownContext.Provider>
181185
) : (
182186
<CDropdownContext.Provider value={contextValues}>
183-
<Component className={_className} {...rest} ref={forkedRef}>
184-
{children}
185-
</Component>
187+
{dropdownContent()}
186188
</CDropdownContext.Provider>
187189
)
188190
},

0 commit comments

Comments
 (0)