@kingstinct/react-native-healthkit
Version:
React Native bindings for HealthKit
32 lines (26 loc) • 694 B
text/typescript
import Native, { EventEmitter } from '../native-types'
import type { HKSampleTypeIdentifier } from '..'
const subscribeToChanges = async (
identifier: HKSampleTypeIdentifier,
callback: () => void,
) => {
const subscription = EventEmitter.addListener(
'onChange',
({ typeIdentifier }) => {
if (typeIdentifier === identifier) {
callback()
}
},
)
const queryId = await Native.subscribeToObserverQuery(identifier).catch(
async (error) => {
subscription.remove()
return Promise.reject(error)
},
)
return async () => {
subscription.remove()
return Native.unsubscribeQuery(queryId)
}
}
export default subscribeToChanges