koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
1 lines • 1.2 kB
Source Map (JSON)
{"version":3,"file":"useAutoRotate.cjs","sources":["../../../../src/lib/Carousel/useAutoRotate.ts"],"sourcesContent":["import type {MutableRefObject} from 'react';\n\nimport {useInterval} from '@/internal/hooks/useInterval.ts';\nimport {useIsInViewport} from '@/internal/hooks/useIsInViewport.tsx';\nimport {useDocumentVisible} from '@/internal/hooks/useDocumentVisible.ts';\n\ntype Props = {\n rotateFn: () => void;\n interval?: number | null;\n ref: MutableRefObject<HTMLElement | null>;\n};\n\nexport const useAutoRotate = ({rotateFn, interval = null, ref}: Props) => {\n const isInViewport = useIsInViewport(ref);\n const isActiveTab = useDocumentVisible();\n const isEnabled = Boolean(interval) && isInViewport && isActiveTab;\n useInterval({callback: rotateFn, interval, condition: isEnabled});\n};\n"],"names":["useAutoRotate","rotateFn","interval","ref","isInViewport","useIsInViewport","isActiveTab","useDocumentVisible","isEnabled","useInterval"],"mappings":"oQAYaA,EAAgB,CAAC,CAAC,SAAAC,EAAU,SAAAC,EAAW,KAAM,IAAAC,KAAgB,CAChE,MAAAC,EAAeC,kBAAgBF,CAAG,EAClCG,EAAcC,EAAAA,mBAAmB,EACjCC,EAAY,EAAQN,GAAaE,GAAgBE,EACvDG,EAAA,YAAY,CAAC,SAAUR,EAAU,SAAAC,EAAU,UAAWM,EAAU,CACpE"}