@fremtind/jkl-react-hooks
Version:
Jøkul react button components
28 lines (27 loc) • 1.18 kB
TypeScript
import { type MouseEventHandler, type PointerEventHandler, type MutableRefObject } from "react";
export type SwipeChangeHandler<T extends HTMLElement> = (event: React.MouseEvent<T> | React.PointerEvent<T>, pressed: boolean) => void;
type SwipeGestureOptions<T extends HTMLElement> = {
onClick?: MouseEventHandler<T>;
onChange?: SwipeChangeHandler<T>;
onPointerDown?: PointerEventHandler<T>;
onPointerUp?: PointerEventHandler<T>;
onPointerMove?: PointerEventHandler<T>;
onPointerCancel?: PointerEventHandler<T>;
};
/**
* Logikk for å håndtere en swipe, for eksempel brukt i toggle switch.
*
* @param options Callbacks for de ulike stegene i en swipe-gesture
* @returns Handlers for de ulike stegene i en swipe-gesture
*/
export declare function useSwipeGesture<T extends HTMLElement>(options: SwipeGestureOptions<T>): {
swipeHandled: MutableRefObject<"on" | "off" | false>;
gestureHandlers: {
onClick: MouseEventHandler<T>;
onPointerDown: PointerEventHandler<T>;
onPointerMove: PointerEventHandler<T>;
onPointerUp: PointerEventHandler<T>;
onPointerCancel: PointerEventHandler<T>;
};
};
export {};