@johnf/react-native-owl
Version:
Visual regression testing for React Native
34 lines (28 loc) • 948 B
text/typescript
import React from 'react';
import type {
PressableProps,
TextInputProps,
TouchableWithoutFeedbackProps,
} from 'react-native';
import { Logger } from '../logger';
export type TrackedElementData = {
ref: React.RefObject<any>;
onPress?:
| TouchableWithoutFeedbackProps['onPress']
| PressableProps['onPress'];
onLongPress?:
| TouchableWithoutFeedbackProps['onLongPress']
| PressableProps['onLongPress'];
onChangeText?: TextInputProps['onChangeText'];
};
/**
* A masic map of tracked elements, that we use to keep track of elements
* so that we can perform actions on them in future
*/
const trackedElements: Record<string, TrackedElementData> = {};
export const get = (ID: string): TrackedElementData | undefined =>
trackedElements[ID];
export const add = (logger: Logger, ID: string, data: TrackedElementData) => {
trackedElements[ID] = data;
logger.info(`[OWL - Tracker] Tracking element with ${ID}`);
};