/* eslint-disable react-native/no-inline-styles */ import * as React from 'react'; import { Text, View } from 'react-native'; import { ContextMenuView } from 'react-native-ios-context-menu'; import type { ExampleItemProps } from './SharedExampleTypes'; import { ContextMenuCard } from '../components/ContextMenuCard'; export function ContextMenuViewExample12(props: ExampleItemProps) { // increments every second... const [timer, setTimer] = React.useState(0); const increment = React.useRef(null); const handleStart = () => { increment.current = setInterval(() => { setTimer((prevTimer) => prevTimer + 1); }, 1000); }; const handleStop = () => { clearInterval(increment.current!); }; const handleReset = () => { clearInterval(increment.current!); setTimer(0); }; return ( 0) && { actionKey : 'reset', actionTitle : `Reset Counter`, menuAttributes: ['destructive'], icon: { type: 'IMAGE_SYSTEM', imageValue: { systemName: 'trash', }, } }], }} previewConfig={{ previewType: 'CUSTOM', backgroundColor: 'white' }} // The context menu preview grows and shrinks due to the labels/ // text changing every second... renderPreview={() => ( {`Counter: ${timer}`} {(timer % 2 === 0)? 'EVEN' : 'The number is: ODD'} )} onMenuDidShow={() => handleStart()} onMenuDidHide={() => handleStop()} onPressMenuItem={({nativeEvent}) => { switch (nativeEvent.actionKey) { case 'add': setTimer((prevTimer) => prevTimer + 100); break; case 'reset': handleReset(); break; }; }} > ); };