diff --git a/packages/core/src/getActiveSnap.ts b/packages/core/src/getActiveSnap.ts index c8b3402..bbd6b23 100644 --- a/packages/core/src/getActiveSnap.ts +++ b/packages/core/src/getActiveSnap.ts @@ -8,9 +8,8 @@ export const getActiveSnap = ({ onChange?: (snapIndex: number) => void; }) => { let activeSnapObserver: IntersectionObserver; - let activeSnapIndex: number; + let activeSnapIndex = 0; let timeout: number | null = null; - let isScrolling = false; const children = root.children; @@ -30,7 +29,6 @@ export const getActiveSnap = ({ const setSnapIndex = (snapIndex: number) => { activeSnapIndex = snapIndex; - triggerChange(snapIndex); }; @@ -42,11 +40,9 @@ export const getActiveSnap = ({ const onResizeWithDebounce = debounceHOF(onResize, 100); const handleScrolling = () => { - isScrolling = true; if (timeout) clearTimeout(timeout); timeout = setTimeout(() => { - isScrolling = false; if (root.scrollLeft === 0) { setSnapIndex(0); } @@ -207,5 +203,8 @@ export const getActiveSnap = ({ return { destroy, + getActiveIndex: () => { + return activeSnapIndex; + }, }; }; diff --git a/packages/svelte/src/index.ts b/packages/svelte/src/index.ts index 1bdfdb4..396020b 100644 --- a/packages/svelte/src/index.ts +++ b/packages/svelte/src/index.ts @@ -14,11 +14,13 @@ export const carousel = (node: HTMLDivElement, options = {}) => { if (_options.dragToScroll) dragToScroll = _dragToScroll({ root: node }); - getActiveSnap({ root: node }); + const activeSnap = getActiveSnap({ root: node }); return { + getActiveIndex: activeSnap.getActiveIndex, destroy() { if (_options.dragToScroll) dragToScroll.disable(); + activeSnap.destroy(); }, }; };