UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

34 lines 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useHorizontalScroll = void 0; const react_1 = require("react"); const useSmoothScroll_1 = require("./useSmoothScroll"); /** * A hook that can be used to control horizontal scroll position of an element * @param scrollDuration How long it takes to scroll to the next click (transition) * @returns A ref to pass to the container */ function useHorizontalScroll(scrollDuration = 200) { const elRef = react_1.useRef(null); const [scrollRef, scrollTo] = useSmoothScroll_1.useSmoothScroll(); const setRef = react_1.useCallback((el) => { scrollRef(el); elRef.current = el; }, []); react_1.useEffect(() => { const el = elRef.current; if (el) { const onWheel = (e) => { if (e.deltaY == 0) return; e.preventDefault(); scrollTo({ addLeft: e.deltaY }, scrollDuration); }; el.addEventListener("wheel", onWheel); return () => el.removeEventListener("wheel", onWheel); } }, []); return setRef; } exports.useHorizontalScroll = useHorizontalScroll; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlSG9yaXpvbnRhbFNjcm9sbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9ob29rcy91c2VIb3Jpem9udGFsU2Nyb2xsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFxRDtBQUNyRCx1REFBa0Q7QUFFbEQ7Ozs7R0FJRztBQUNILFNBQWdCLG1CQUFtQixDQUMvQixpQkFBeUIsR0FBRztJQUU1QixNQUFNLEtBQUssR0FBRyxjQUFNLENBQVcsSUFBSSxDQUFDLENBQUM7SUFDckMsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxpQ0FBZSxFQUFFLENBQUM7SUFDaEQsTUFBTSxNQUFNLEdBQUcsbUJBQVcsQ0FBQyxDQUFDLEVBQVksRUFBRSxFQUFFO1FBQ3hDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNkLEtBQUssQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLGlCQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN6QixJQUFJLEVBQUUsRUFBRTtZQUNKLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBYSxFQUFFLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDO29CQUFFLE9BQU87Z0JBQzFCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsUUFBUSxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUM7WUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6RDtJQUNMLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNQLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUF2QkQsa0RBdUJDIn0=