PressableContextWrapper

Wraps its children in a PressableContext.
Children can be a ReactNode or a Render Props function receiving TrackingContext.

PressableContextWrapper: (props: {
children: ReactNode | ((parameters: TrackingContext) => ReactNode),
id: string
}) => ReactElement

Parameters

type
requiredchildrenReactNode | ((parameters: TrackingContext) => void)
requiredidstring

Returns

ReactElement

Usage example

Enrich Locations

import { PressableContextWrapper } from '@objectiv/tracker-react-native';

<PressableContextWrapper id={'do-it'}>
<Button title={'Do it'} onPress={() => doIt()}/>
</PressableContextWrapper>

Tracking via Render Props

import { 
PressableContextWrapper,
trackFailureEvent,
trackPressEvent,
trackSuccessEvent
} from '@objectiv/tracker-react-native';

<PressableContextWrapper id={'do-it'}>
{(trackingContext) => (
<Button title={'Do it'} onClick={async () => {
trackPressEvent(trackingContext);

const response = await doIt();

if (response.ok) {
trackSuccessEvent({
message: response.statusText,
...trackingContext
});
} else {
trackFailureEvent({
message: error.message,
...trackingContext
});
}
}}/>
)}
</PressableContextWrapper>

info

The above is just an example to illustrate the Render Props functionality.
Check out our Tracked Components for ready-to-use Components.


Did you know ?

PressableContextWrapper internally uses LocationContextWrapper.