import AppleHealthKit, { HealthKitPermissions } from 'react-native-health'; const PERMISSIONS: HealthKitPermissions = { permissions: { read: [ AppleHealthKit.Constants.Permissions.StepCount, AppleHealthKit.Constants.Permissions.ActiveEnergyBurned, ], write: [], }, }; export type TodayHealthData = { steps: number; activeEnergyBurned: number; // kilocalories }; export async function ensureHealthPermissions(): Promise { return new Promise((resolve) => { AppleHealthKit.initHealthKit(PERMISSIONS, (error) => { if (error) { console.warn('HealthKit init failed', error); resolve(false); return; } console.log('HealthKit init success'); resolve(true); }); }); } export async function fetchTodayHealthData(): Promise { const start = new Date(); start.setHours(0, 0, 0, 0); const options = { startDate: start.toISOString() } as any; const steps = await new Promise((resolve) => { AppleHealthKit.getStepCount(options, (err, res) => { if (err || !res) return resolve(0); resolve(res.value || 0); }); }); const calories = await new Promise((resolve) => { AppleHealthKit.getActiveEnergyBurned(options, (err, res) => { if (err || !res) return resolve(0); // library returns value as number in kilocalories resolve(res[0].value || 0); }); }); return { steps, activeEnergyBurned: calories }; }