combobox: move outer click handlers to onMount

This commit is contained in:
Elijah Duffy
2025-07-16 17:42:06 -07:00
parent ee922b49ee
commit 8e65a0b323

View File

@@ -310,27 +310,6 @@
}
};
if (browser) {
// update picker position on window resize
window.addEventListener('resize', updatePickerRect);
// add window click listener to close picker
window.addEventListener('click', (e) => {
if (!searchContainer || !pickerContainer) {
return;
}
if (
searchContainer.contains(e.target as Node) ||
pickerContainer.contains(e.target as Node)
) {
return;
}
closePicker();
});
}
// when the value (or, in some circumstances, highlighted item) changes, update the search input
$effect(() => {
if (!searchInput) return;
@@ -357,9 +336,30 @@
});
onMount(() => {
// set initial picker position on load
setTimeout(() => {
updatePickerRect();
}, 500);
// update picker position on window resize
window.addEventListener('resize', updatePickerRect);
// add window click listener to close picker
window.addEventListener('click', (e) => {
if (!searchContainer || !pickerContainer) {
return;
}
if (
searchContainer.contains(e.target as Node) ||
pickerContainer.contains(e.target as Node) ||
!open
) {
return;
}
closePicker();
});
});
</script>