UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

68 lines (67 loc) • 1.54 kB
import type { ServiceConfig, ServiceInterface } from './AbstractService.js'; import { AbstractService } from './AbstractService.js'; export interface ScrollServiceProps { x: number; y: number; changed: { x: boolean; y: boolean; }; changedX: boolean; changedY: boolean; last: { x: number; y: number; }; lastX: number; lastY: number; delta: { x: number; y: number; }; deltaX: number; deltaY: number; progress: { x: number; y: number; }; progressX: number; progressY: number; max: { x: number; y: number; }; maxX: number; maxY: number; direction: { x: 'LEFT' | 'RIGHT' | 'NONE'; y: 'UP' | 'DOWN' | 'NONE'; }; isUp: boolean; isRight: boolean; isDown: boolean; isLeft: boolean; } export type ScrollServiceInterface = ServiceInterface<ScrollServiceProps>; export declare class ScrollService extends AbstractService<ScrollServiceProps> { static config: ServiceConfig; props: ScrollServiceProps; updateProps(): ScrollServiceProps; onScrollDebounced: (...args: unknown[]) => void; /** * Scroll handler. */ handleEvent(): void; } /** * Use the scroll service. * * ```js * import { useScroll } from '@studiometa/js-toolkit/services'; * const { add, remove, props } = useScroll(); * add(key, (props) => {}); * remove(key); * props(); * ``` */ export declare function useScroll(): ScrollServiceInterface;