Massive/use-timer.ts

26 lines
737 B
TypeScript

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}
}