1
0

Добавлены attachments - clickOutside и intersection

This commit is contained in:
2025-11-17 23:48:44 +04:00
parent 526aae1de2
commit 407d031b8a
3 changed files with 32 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
export default (callback) => {
return (node) => {
const onclick = (event) => {
if (node && !node.contains(event.target) && !event.defaultPrevented && typeof callback === 'function') {
callback()
}
}
document.addEventListener('click', onclick, true);
return () => {
document.removeEventListener('click', onclick, true)
}
}
}

View File

@@ -0,0 +1,14 @@
export default (callback) => {
return (node) => {
$effect(() => {
const observer = new IntersectionObserver((entries) => {
if (entries?.[0].isIntersecting) {
callback()
}
})
observer.observe(node)
return () => observer.disconnect()
})
}
}

View File

@@ -1,3 +1,6 @@
export { default as clickOutside } from './attachments/clickOutside.svelte'
export { default as intersection } from './attachments/intersection.svelte'
export { default as Image } from './components/Image.svelte'
export { default as Picture } from './components/Picture.svelte'
export { default as YandexMetrika } from './components/YandexMetrika.svelte'