@kingstinct/react-native-healthkit
Version:
React Native bindings for HealthKit
26 lines (19 loc) • 666 B
text/typescript
import { useCallback, useEffect, useState } from 'react'
import type { WorkoutProxy } from '../specs/WorkoutProxy.nitro'
import getMostRecentWorkout from '../utils/getMostRecentWorkout'
import useSubscribeToChanges from './useSubscribeToChanges'
/**
* @returns the most recent workout sample.
*/
export function useMostRecentWorkout() {
const [workout, setWorkout] = useState<WorkoutProxy>()
const update = useCallback(async () => {
setWorkout(await getMostRecentWorkout())
}, [])
useEffect(() => {
void update()
}, [update])
useSubscribeToChanges('HKWorkoutTypeIdentifier', update)
return workout
}
export default useMostRecentWorkout