react-native-gesture-handler
Version:
Declarative API exposing native platform touch and gesture system to React Native
70 lines (60 loc) • 1.83 kB
text/typescript
import type React from 'react';
import { Animated, StyleSheet } from 'react-native';
import type {
TouchAction,
UserSelect,
} from '../../handlers/gestureHandlerCommon';
import type { GestureDetectorProps as LegacyDetectorProps } from '../../handlers/gestures/GestureDetector';
import type { Gesture } from '../types';
import HostGestureDetector from './HostGestureDetector';
export enum GestureDetectorType {
Native,
Virtual,
Intercepting,
}
interface CommonGestureDetectorProps {
children?: React.ReactNode;
userSelect?: UserSelect | undefined;
touchAction?: TouchAction | undefined;
enableContextMenu?: boolean | undefined;
}
export interface NativeDetectorProps<
TConfig,
THandlerData,
TExtendedHandlerData extends THandlerData,
> extends CommonGestureDetectorProps {
gesture: Gesture<TConfig, THandlerData, TExtendedHandlerData>;
}
export interface InterceptingGestureDetectorProps<
TConfig,
THandlerData,
TExtendedHandlerData extends THandlerData,
> extends CommonGestureDetectorProps {
gesture?: Gesture<TConfig, THandlerData, TExtendedHandlerData>;
}
export interface VirtualDetectorProps<
TConfig,
THandlerData,
TExtendedHandlerData extends THandlerData,
> extends CommonGestureDetectorProps {
gesture: Gesture<TConfig, THandlerData, TExtendedHandlerData>;
}
export type GestureDetectorProps<
TConfig,
THandlerData,
TExtendedHandlerData extends THandlerData,
> =
| NativeDetectorProps<TConfig, THandlerData, TExtendedHandlerData>
| InterceptingGestureDetectorProps<
TConfig,
THandlerData,
TExtendedHandlerData
>
| LegacyDetectorProps;
export const AnimatedNativeDetector =
Animated.createAnimatedComponent(HostGestureDetector);
export const nativeDetectorStyles = StyleSheet.create({
detector: {
display: 'contents',
},
});