import {useFocusEffect} from '@react-navigation/native' import {useCallback, useState} from 'react' import {NativeEventEmitter} from 'react-native' import {TickEvent} from './TimerPage' export default function useTimer() { const [minutes, setMinutes] = useState('00') const [seconds, setSeconds] = useState('00') useFocusEffect( useCallback(() => { setMinutes('00') setSeconds('00') const emitter = new NativeEventEmitter() const listener = emitter.addListener('tick', (event: TickEvent) => { console.log(`${useTimer.name}.tick:`, {event}) setMinutes(event.minutes) setSeconds(event.seconds) }) return listener.remove }, []), ) return {minutes, seconds} }