@launchmenu/core
Version:
An environment for visual keyboard controlled applets
34 lines • 2.59 kB
JavaScript
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=
;