react-native-gesture-handler
Version:
Declarative API exposing native platform touch and gesture system to React Native
73 lines (60 loc) • 2.09 kB
text/typescript
import type {
BaseDiscreteGestureConfig,
ExcludeInternalConfigProps,
GestureEvent,
SingleGesture,
WithSharedValue,
} from '../../../types';
type CommonLongPressGestureProperties = {
/**
* Determine exact number of points required to handle the long press gesture.
*/
numberOfPointers?: number;
};
export type LongPressGestureExternalProperties =
CommonLongPressGestureProperties & {
/**
* Minimum time, expressed in milliseconds, that a finger must remain pressed on
* the corresponding view. The default value is 500.
*/
minDuration?: number;
/**
* Maximum distance, expressed in points, that defines how far the finger is
* allowed to travel during a long press gesture. If the finger travels
* further than the defined distance and the handler hasn't yet activated, it
* will fail to recognize the gesture. The default value is 10.
*/
maxDistance?: number;
};
export type LongPressGestureNativeProperties =
CommonLongPressGestureProperties & {
minDurationMs?: number;
maxDist?: number;
};
export const LongPressNativeProperties = new Set<
keyof LongPressGestureNativeProperties
>(['minDurationMs', 'maxDist', 'numberOfPointers']);
export type LongPressHandlerData = {
x: number;
y: number;
absoluteX: number;
absoluteY: number;
duration: number;
};
export type LongPressGestureProperties =
WithSharedValue<LongPressGestureExternalProperties>;
export type LongPressGestureInternalProperties =
WithSharedValue<LongPressGestureNativeProperties>;
export type LongPressGestureConfig = ExcludeInternalConfigProps<
BaseDiscreteGestureConfig<LongPressGestureProperties, LongPressHandlerData>
>;
export type LongPressGestureInternalConfig = BaseDiscreteGestureConfig<
LongPressGestureInternalProperties,
LongPressHandlerData
>;
export type LongPressGestureEvent = GestureEvent<LongPressHandlerData>;
export type LongPressGestureActiveEvent = LongPressGestureEvent;
export type LongPressGesture = SingleGesture<
LongPressGestureProperties,
LongPressHandlerData
>;