@kingstinct/react-native-healthkit 12.1.2 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ios/CategoryTypeModule.swift +49 -97
- package/ios/CharacteristicTypeModule.swift +77 -63
- package/ios/CoreModule.swift +324 -280
- package/ios/CorrelationTypeModule.swift +192 -144
- package/ios/ElectrocardiogramModule.swift +185 -194
- package/ios/HeartbeatSeriesModule.swift +123 -171
- package/ios/Helpers.swift +312 -571
- package/ios/MedicationModule.swift +259 -0
- package/ios/PredicateHelpers.swift +334 -0
- package/ios/QuantityTypeModule.swift +297 -378
- package/ios/Serializers.swift +273 -210
- package/ios/SourceProxy.swift +2 -2
- package/ios/StateOfMindModule.swift +179 -125
- package/ios/WorkoutProxy.swift +235 -112
- package/ios/WorkoutsModule.swift +214 -262
- package/lib/commonjs/healthkit.ios.js +22 -2
- package/lib/commonjs/healthkit.js +35 -5
- package/lib/commonjs/hooks/useStatisticsForQuantity.js +1 -1
- package/lib/commonjs/hooks/useSubscribeToCategorySamples.js +20 -0
- package/lib/commonjs/modules.js +2 -1
- package/lib/commonjs/specs/MedicationModule.nitro.js +27 -0
- package/lib/commonjs/types/Constants.js +2 -1
- package/lib/commonjs/types/QuantityType.js +8 -1
- package/lib/commonjs/types/QueryOptions.js +18 -0
- package/lib/commonjs/types/WeatherCondition.js +32 -32
- package/lib/commonjs/types/Workouts.js +1 -50
- package/lib/commonjs/utils/getCategorySampleById.js +1 -1
- package/lib/commonjs/utils/getQuantitySampleById.js +1 -1
- package/lib/commonjs/utils/getWorkoutById.js +1 -1
- package/lib/commonjs/utils/subscribeToCategorySamples.js +29 -0
- package/lib/commonjs/utils/subscribeToQuantitySamples.js +8 -25
- package/lib/module/healthkit.ios.js +20 -2
- package/lib/module/healthkit.js +32 -2
- package/lib/module/hooks/useStatisticsForQuantity.js +1 -1
- package/lib/module/hooks/useSubscribeToCategorySamples.js +17 -0
- package/lib/module/modules.js +1 -0
- package/lib/module/specs/MedicationModule.nitro.js +26 -0
- package/lib/module/types/Constants.js +1 -0
- package/lib/module/types/QuantityType.js +7 -0
- package/lib/module/types/QueryOptions.js +17 -1
- package/lib/module/types/WeatherCondition.js +31 -31
- package/lib/module/types/Workouts.js +0 -49
- package/lib/module/utils/getCategorySampleById.js +1 -1
- package/lib/module/utils/getQuantitySampleById.js +1 -1
- package/lib/module/utils/getWorkoutById.js +1 -1
- package/lib/module/utils/subscribeToCategorySamples.js +26 -0
- package/lib/module/utils/subscribeToQuantitySamples.js +8 -25
- package/lib/typescript/healthkit.d.ts +18 -9
- package/lib/typescript/healthkit.ios.d.ts +33 -15
- package/lib/typescript/hooks/useSubscribeToCategorySamples.d.ts +3 -0
- package/lib/typescript/modules.d.ts +2 -0
- package/lib/typescript/specs/CategoryTypeModule.nitro.d.ts +2 -2
- package/lib/typescript/specs/CoreModule.nitro.d.ts +2 -1
- package/lib/typescript/specs/CorrelationTypeModule.nitro.d.ts +4 -2
- package/lib/typescript/specs/ElectrocardiogramModule.nitro.d.ts +1 -1
- package/lib/typescript/specs/HeartbeatSeriesModule.nitro.d.ts +1 -1
- package/lib/typescript/specs/MedicationModule.nitro.d.ts +56 -0
- package/lib/typescript/specs/QuantityTypeModule.nitro.d.ts +4 -4
- package/lib/typescript/specs/StateOfMindModule.nitro.d.ts +4 -3
- package/lib/typescript/types/CategoryType.d.ts +10 -20
- package/lib/typescript/types/Constants.d.ts +1 -0
- package/lib/typescript/types/CorrelationType.d.ts +8 -10
- package/lib/typescript/types/ElectrocardiogramSample.d.ts +2 -12
- package/lib/typescript/types/HeartbeatSeries.d.ts +2 -14
- package/lib/typescript/types/QuantitySample.d.ts +2 -8
- package/lib/typescript/types/QuantityType.d.ts +7 -8
- package/lib/typescript/types/QuantityTypeIdentifier.d.ts +23 -23
- package/lib/typescript/types/QueryOptions.d.ts +43 -28
- package/lib/typescript/types/Shared.d.ts +52 -7
- package/lib/typescript/types/StateOfMind.d.ts +7 -10
- package/lib/typescript/types/Subscriptions.d.ts +12 -3
- package/lib/typescript/types/WeatherCondition.d.ts +1 -1
- package/lib/typescript/types/Workouts.d.ts +28 -81
- package/lib/typescript/utils/subscribeToCategorySamples.d.ts +5 -0
- package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Bridge.cpp +57 -0
- package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Bridge.hpp +592 -389
- package/nitrogen/generated/ios/ReactNativeHealthkit-Swift-Cxx-Umbrella.hpp +65 -30
- package/nitrogen/generated/ios/ReactNativeHealthkitAutolinking.mm +8 -0
- package/nitrogen/generated/ios/ReactNativeHealthkitAutolinking.swift +15 -0
- package/nitrogen/generated/ios/c++/HybridCategoryTypeModuleSpecSwift.hpp +32 -26
- package/nitrogen/generated/ios/c++/HybridCoreModuleSpecSwift.hpp +36 -37
- package/nitrogen/generated/ios/c++/HybridCorrelationTypeModuleSpecSwift.hpp +55 -2
- package/nitrogen/generated/ios/c++/HybridElectrocardiogramModuleSpecSwift.hpp +36 -30
- package/nitrogen/generated/ios/c++/HybridHeartbeatSeriesModuleSpecSwift.hpp +35 -29
- package/nitrogen/generated/ios/c++/HybridMedicationModuleSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridMedicationModuleSpecSwift.hpp +181 -0
- package/nitrogen/generated/ios/c++/HybridQuantityTypeModuleSpecSwift.hpp +48 -42
- package/nitrogen/generated/ios/c++/HybridStateOfMindModuleSpecSwift.hpp +59 -36
- package/nitrogen/generated/ios/c++/HybridWorkoutProxySpecSwift.hpp +150 -29
- package/nitrogen/generated/ios/c++/HybridWorkoutsModuleSpecSwift.hpp +13 -28
- package/nitrogen/generated/ios/swift/AggregationStyle.swift +48 -0
- package/nitrogen/generated/ios/swift/CategorySample.swift +571 -24
- package/nitrogen/generated/ios/swift/ComparisonPredicateOperator.swift +2 -2
- package/nitrogen/generated/ios/swift/CorrelationSample.swift +640 -17
- package/nitrogen/generated/ios/swift/{PredicateWithStartAndEnd.swift → DateFilter.swift} +5 -5
- package/nitrogen/generated/ios/swift/ECGQueryOptionsWithAnchor.swift +11 -91
- package/nitrogen/generated/ios/swift/ECGQueryOptionsWithSortOrder.swift +11 -91
- package/nitrogen/generated/ios/swift/ElectrocardiogramSample.swift +570 -72
- package/nitrogen/generated/ios/swift/FilterForSamples.swift +349 -12
- package/nitrogen/generated/ios/swift/FilterForSamplesBase.swift +234 -0
- package/nitrogen/generated/ios/swift/FilterForWorkouts.swift +366 -0
- package/nitrogen/generated/ios/swift/FilterForWorkoutsBase.swift +240 -0
- package/nitrogen/generated/ios/swift/Func_void_MedicationDoseEventsWithAnchorResponse.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_QueryCorrelationSamplesWithAnchorResponse.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_StateOfMindSamplesWithAnchorResponse.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_MedicationDoseEvent_.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_UserAnnotatedMedication_.swift +47 -0
- package/nitrogen/generated/ios/swift/GeneralForm.swift +104 -0
- package/nitrogen/generated/ios/swift/HeartRateMotionContext.swift +44 -0
- package/nitrogen/generated/ios/swift/HeartbeatSeriesSample.swift +565 -37
- package/nitrogen/generated/ios/swift/HybridCategoryTypeModuleSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridCategoryTypeModuleSpec_cxx.swift +2 -2
- package/nitrogen/generated/ios/swift/HybridCoreModuleSpec.swift +2 -1
- package/nitrogen/generated/ios/swift/HybridCoreModuleSpec_cxx.swift +19 -31
- package/nitrogen/generated/ios/swift/HybridCorrelationTypeModuleSpec.swift +2 -1
- package/nitrogen/generated/ios/swift/HybridCorrelationTypeModuleSpec_cxx.swift +21 -2
- package/nitrogen/generated/ios/swift/HybridElectrocardiogramModuleSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridElectrocardiogramModuleSpec_cxx.swift +2 -2
- package/nitrogen/generated/ios/swift/HybridHeartbeatSeriesModuleSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridHeartbeatSeriesModuleSpec_cxx.swift +2 -2
- package/nitrogen/generated/ios/swift/HybridMedicationModuleSpec.swift +60 -0
- package/nitrogen/generated/ios/swift/HybridMedicationModuleSpec_cxx.swift +208 -0
- package/nitrogen/generated/ios/swift/HybridQuantityTypeModuleSpec.swift +2 -2
- package/nitrogen/generated/ios/swift/HybridQuantityTypeModuleSpec_cxx.swift +9 -43
- package/nitrogen/generated/ios/swift/HybridStateOfMindModuleSpec.swift +2 -1
- package/nitrogen/generated/ios/swift/HybridStateOfMindModuleSpec_cxx.swift +21 -2
- package/nitrogen/generated/ios/swift/HybridWorkoutProxySpec.swift +34 -6
- package/nitrogen/generated/ios/swift/HybridWorkoutProxySpec_cxx.swift +376 -36
- package/nitrogen/generated/ios/swift/InsulinDeliveryReason.swift +40 -0
- package/nitrogen/generated/ios/swift/MedicationConcept.swift +80 -0
- package/nitrogen/generated/ios/swift/MedicationDoseEvent.swift +781 -0
- package/nitrogen/generated/ios/swift/MedicationDoseEventLogStatus.swift +56 -0
- package/nitrogen/generated/ios/swift/MedicationDoseEventScheduleType.swift +40 -0
- package/nitrogen/generated/ios/swift/MedicationDoseEventsWithAnchorResponse.swift +81 -0
- package/nitrogen/generated/ios/swift/ObjectTypeIdentifier.swift +16 -16
- package/nitrogen/generated/ios/swift/PredicateWithMetadataKey.swift +7 -7
- package/nitrogen/generated/ios/swift/QuantitySample.swift +574 -27
- package/nitrogen/generated/ios/swift/QuantityTypeIdentifier.swift +16 -16
- package/nitrogen/generated/ios/swift/QueryCorrelationSamplesWithAnchorResponse.swift +81 -0
- package/nitrogen/generated/ios/swift/QueryOptionsWithAnchor.swift +11 -91
- package/nitrogen/generated/ios/swift/QueryOptionsWithAnchorAndUnit.swift +11 -91
- package/nitrogen/generated/ios/swift/QueryOptionsWithSortOrder.swift +11 -91
- package/nitrogen/generated/ios/swift/QueryOptionsWithSortOrderAndUnit.swift +11 -91
- package/nitrogen/generated/ios/swift/RelatedCoding.swift +76 -0
- package/nitrogen/generated/ios/swift/SampleType.swift +68 -0
- package/nitrogen/generated/ios/swift/SampleTypeIdentifier.swift +16 -16
- package/nitrogen/generated/ios/swift/SampleTypeIdentifierWriteable.swift +0 -16
- package/nitrogen/generated/ios/swift/StateOfMindSample.swift +586 -58
- package/nitrogen/generated/ios/swift/StateOfMindSamplesWithAnchorResponse.swift +81 -0
- package/nitrogen/generated/ios/swift/StatisticsQueryOptions.swift +7 -75
- package/nitrogen/generated/ios/swift/UserAnnotatedMedication.swift +87 -0
- package/nitrogen/generated/ios/swift/WeatherCondition.swift +144 -0
- package/nitrogen/generated/ios/swift/WorkoutQueryOptions.swift +11 -105
- package/nitrogen/generated/ios/swift/WorkoutQueryOptionsWithAnchor.swift +11 -105
- package/nitrogen/generated/ios/swift/WorkoutSample.swift +751 -78
- package/nitrogen/generated/shared/c++/AggregationStyle.hpp +64 -0
- package/nitrogen/generated/shared/c++/CategorySample.hpp +126 -23
- package/nitrogen/generated/shared/c++/CorrelationSample.hpp +134 -12
- package/nitrogen/generated/shared/c++/{PredicateWithStartAndEnd.hpp → DateFilter.hpp} +10 -10
- package/nitrogen/generated/shared/c++/ECGQueryOptionsWithAnchor.hpp +12 -31
- package/nitrogen/generated/shared/c++/ECGQueryOptionsWithSortOrder.hpp +12 -31
- package/nitrogen/generated/shared/c++/ElectrocardiogramSample.hpp +135 -36
- package/nitrogen/generated/shared/c++/FilterForSamples.hpp +124 -0
- package/nitrogen/generated/shared/c++/FilterForSamplesBase.hpp +109 -0
- package/nitrogen/generated/shared/c++/FilterForWorkouts.hpp +131 -0
- package/nitrogen/generated/shared/c++/FilterForWorkoutsBase.hpp +116 -0
- package/nitrogen/generated/shared/c++/GeneralForm.hpp +140 -0
- package/nitrogen/generated/shared/c++/HeartRateMotionContext.hpp +67 -0
- package/nitrogen/generated/shared/c++/HeartbeatSeriesSample.hpp +131 -28
- package/nitrogen/generated/shared/c++/HybridCategoryTypeModuleSpec.hpp +1 -2
- package/nitrogen/generated/shared/c++/HybridCoreModuleSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridCoreModuleSpec.hpp +10 -28
- package/nitrogen/generated/shared/c++/HybridCorrelationTypeModuleSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridCorrelationTypeModuleSpec.hpp +11 -1
- package/nitrogen/generated/shared/c++/HybridElectrocardiogramModuleSpec.hpp +1 -2
- package/nitrogen/generated/shared/c++/HybridHeartbeatSeriesModuleSpec.hpp +1 -2
- package/nitrogen/generated/shared/c++/HybridMedicationModuleSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridMedicationModuleSpec.hpp +80 -0
- package/nitrogen/generated/shared/c++/HybridQuantityTypeModuleSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridQuantityTypeModuleSpec.hpp +6 -25
- package/nitrogen/generated/shared/c++/HybridStateOfMindModuleSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridStateOfMindModuleSpec.hpp +9 -2
- package/nitrogen/generated/shared/c++/HybridWorkoutProxySpec.cpp +33 -5
- package/nitrogen/generated/shared/c++/HybridWorkoutProxySpec.hpp +56 -16
- package/nitrogen/generated/shared/c++/InsulinDeliveryReason.hpp +62 -0
- package/nitrogen/generated/shared/c++/MedicationConcept.hpp +93 -0
- package/nitrogen/generated/shared/c++/MedicationDoseEvent.hpp +240 -0
- package/nitrogen/generated/shared/c++/MedicationDoseEventLogStatus.hpp +66 -0
- package/nitrogen/generated/shared/c++/MedicationDoseEventScheduleType.hpp +62 -0
- package/nitrogen/generated/shared/c++/MedicationDoseEventsWithAnchorResponse.hpp +89 -0
- package/nitrogen/generated/shared/c++/ObjectTypeIdentifier.hpp +105 -105
- package/nitrogen/generated/shared/c++/PredicateWithMetadataKey.hpp +8 -8
- package/nitrogen/generated/shared/c++/QuantitySample.hpp +130 -27
- package/nitrogen/generated/shared/c++/QuantityTypeIdentifier.hpp +105 -105
- package/nitrogen/generated/shared/c++/QueryCorrelationSamplesWithAnchorResponse.hpp +89 -0
- package/nitrogen/generated/shared/c++/QueryOptionsWithAnchor.hpp +12 -31
- package/nitrogen/generated/shared/c++/QueryOptionsWithAnchorAndUnit.hpp +12 -31
- package/nitrogen/generated/shared/c++/QueryOptionsWithSortOrder.hpp +12 -31
- package/nitrogen/generated/shared/c++/QueryOptionsWithSortOrderAndUnit.hpp +12 -31
- package/nitrogen/generated/shared/c++/RelatedCoding.hpp +84 -0
- package/nitrogen/generated/shared/c++/SampleType.hpp +87 -0
- package/nitrogen/generated/shared/c++/SampleTypeIdentifier.hpp +105 -105
- package/nitrogen/generated/shared/c++/SampleTypeIdentifierWriteable.hpp +105 -121
- package/nitrogen/generated/shared/c++/StateOfMindSample.hpp +139 -36
- package/nitrogen/generated/shared/c++/StateOfMindSamplesWithAnchorResponse.hpp +89 -0
- package/nitrogen/generated/shared/c++/StatisticsQueryOptions.hpp +8 -27
- package/nitrogen/generated/shared/c++/UserAnnotatedMedication.hpp +90 -0
- package/nitrogen/generated/shared/c++/WeatherCondition.hpp +88 -0
- package/nitrogen/generated/shared/c++/WorkoutQueryOptions.hpp +12 -37
- package/nitrogen/generated/shared/c++/WorkoutQueryOptionsWithAnchor.hpp +12 -37
- package/nitrogen/generated/shared/c++/WorkoutSample.hpp +159 -35
- package/package.json +1 -1
- package/src/healthkit.ios.ts +30 -0
- package/src/healthkit.ts +68 -3
- package/src/hooks/useStatisticsForQuantity.ts +1 -1
- package/src/hooks/useSubscribeToCategorySamples.ts +31 -0
- package/src/modules.ts +4 -0
- package/src/specs/CategoryTypeModule.nitro.ts +2 -2
- package/src/specs/CoreModule.nitro.ts +3 -0
- package/src/specs/CorrelationTypeModule.nitro.ts +11 -3
- package/src/specs/ElectrocardiogramModule.nitro.ts +1 -1
- package/src/specs/HeartbeatSeriesModule.nitro.ts +1 -1
- package/src/specs/MedicationModule.nitro.ts +140 -0
- package/src/specs/QuantityTypeModule.nitro.ts +4 -7
- package/src/specs/StateOfMindModule.nitro.ts +10 -2
- package/src/types/CategoryType.ts +15 -22
- package/src/types/Constants.ts +3 -0
- package/src/types/CorrelationType.ts +10 -15
- package/src/types/ElectrocardiogramSample.ts +2 -14
- package/src/types/HeartbeatSeries.ts +2 -15
- package/src/types/QuantitySample.ts +2 -8
- package/src/types/QuantityType.ts +8 -17
- package/src/types/QuantityTypeIdentifier.ts +25 -25
- package/src/types/QueryOptions.ts +54 -43
- package/src/types/Shared.ts +74 -17
- package/src/types/StateOfMind.ts +8 -10
- package/src/types/Subscriptions.ts +19 -3
- package/src/types/WeatherCondition.ts +1 -1
- package/src/types/Workouts.ts +28 -91
- package/src/utils/getCategorySampleById.ts +1 -1
- package/src/utils/getQuantitySampleById.ts +1 -1
- package/src/utils/getWorkoutById.ts +1 -2
- package/src/utils/subscribeToCategorySamples.ts +38 -0
- package/src/utils/subscribeToQuantitySamples.ts +12 -37
- package/nitrogen/generated/ios/swift/FilterForSamplesAnd.swift +0 -94
- package/nitrogen/generated/ios/swift/FilterForSamplesOr.swift +0 -94
- package/nitrogen/generated/ios/swift/PredicateForSamples.swift +0 -21
- package/nitrogen/generated/ios/swift/PredicateForWorkouts.swift +0 -23
- package/nitrogen/generated/ios/swift/PredicateForWorkoutsAnd.swift +0 -108
- package/nitrogen/generated/ios/swift/PredicateForWorkoutsOr.swift +0 -108
- package/nitrogen/generated/ios/swift/PredicateFromWorkout.swift +0 -45
- package/nitrogen/generated/ios/swift/PredicateWithMetadataOperator.swift +0 -48
- package/nitrogen/generated/ios/swift/PredicateWithUUID.swift +0 -35
- package/nitrogen/generated/ios/swift/PredicateWithUUIDs.swift +0 -47
- package/nitrogen/generated/ios/swift/Variant_PredicateWithUUID_PredicateWithUUIDs_PredicateWithMetadataKey_PredicateWithStartAndEnd_PredicateFromWorkout_FilterForSamplesAnd_FilterForSamplesOr.swift +0 -23
- package/nitrogen/generated/ios/swift/Variant_PredicateWithUUID_PredicateWithUUIDs_PredicateWithMetadataKey_PredicateWithStartAndEnd_PredicateFromWorkout_WorkoutActivityTypePredicate_WorkoutDurationPredicate_PredicateForWorkoutsOr_PredicateForWorkoutsAnd.swift +0 -25
- package/nitrogen/generated/ios/swift/WorkoutActivityTypePredicate.swift +0 -35
- package/nitrogen/generated/shared/c++/FilterForSamplesAnd.hpp +0 -90
- package/nitrogen/generated/shared/c++/FilterForSamplesOr.hpp +0 -90
- package/nitrogen/generated/shared/c++/PredicateForWorkoutsAnd.hpp +0 -96
- package/nitrogen/generated/shared/c++/PredicateForWorkoutsOr.hpp +0 -96
- package/nitrogen/generated/shared/c++/PredicateFromWorkout.hpp +0 -77
- package/nitrogen/generated/shared/c++/PredicateWithMetadataOperator.hpp +0 -84
- package/nitrogen/generated/shared/c++/PredicateWithUUID.hpp +0 -75
- package/nitrogen/generated/shared/c++/PredicateWithUUIDs.hpp +0 -76
- package/nitrogen/generated/shared/c++/WorkoutActivityTypePredicate.hpp +0 -76
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.useSubscribeToQuantitySamples = exports.subscribeToQuantitySamples = exports.getWheelchairUseAsync = exports.getFitzpatrickSkinTypeAsync = exports.getDateOfBirthAsync = exports.getBloodTypeAsync = exports.getBiologicalSexAsync = exports.useStatisticsForQuantity = void 0;
|
|
17
|
+
exports.useHealthkitAuthorization = exports.useSubscribeToChanges = exports.useMostRecentWorkout = exports.useMostRecentQuantitySample = exports.getPreferredUnit = exports.getMostRecentWorkout = exports.getMostRecentQuantitySample = exports.saveStateOfMindSample = exports.queryCorrelationSamplesWithAnchor = exports.queryStateOfMindSamplesWithAnchor = exports.queryStateOfMindSamples = exports.startWatchApp = exports.saveWorkoutSample = exports.queryWorkoutSamplesWithAnchor = exports.queryWorkoutSamples = exports.queryElectrocardiogramSamplesWithAnchor = exports.queryElectrocardiogramSamples = exports.queryHeartbeatSeriesSamplesWithAnchor = exports.queryHeartbeatSeriesSamples = exports.saveCorrelationSample = exports.queryCorrelationSamples = exports.saveCategorySample = exports.isQuantityCompatibleWithUnit = exports.saveQuantitySample = exports.queryStatisticsCollectionForQuantity = exports.queryStatisticsForQuantity = exports.queryQuantitySamplesWithAnchor = exports.queryQuantitySamples = exports.getWheelchairUse = exports.getFitzpatrickSkinType = exports.getDateOfBirth = exports.getBloodType = exports.getBiologicalSex = exports.areObjectTypesAvailableAsync = exports.areObjectTypesAvailable = exports.isObjectTypeAvailableAsync = exports.isObjectTypeAvailable = exports.isProtectedDataAvailable = exports.subscribeToChanges = exports.deleteObjects = exports.requestAuthorization = exports.querySources = exports.isHealthDataAvailableAsync = exports.isHealthDataAvailable = exports.getRequestStatusForAuthorization = exports.getPreferredUnits = exports.enableBackgroundDelivery = exports.disableBackgroundDelivery = exports.disableAllBackgroundDelivery = exports.authorizationStatusFor = void 0;
|
|
18
|
+
exports.requestMedicationsAuthorization = exports.subscribeToCategorySamples = exports.useSubscribeToCategorySamples = exports.useSubscribeToQuantitySamples = exports.queryMedicationEventsWithAnchor = exports.queryMedicationEvents = exports.queryMedications = exports.currentAppSource = exports.subscribeToQuantitySamples = exports.getWheelchairUseAsync = exports.getFitzpatrickSkinTypeAsync = exports.getDateOfBirthAsync = exports.getBloodTypeAsync = exports.getBiologicalSexAsync = exports.useStatisticsForQuantity = exports.useSources = exports.useIsHealthDataAvailable = void 0;
|
|
19
19
|
exports.queryCategorySamples = queryCategorySamples;
|
|
20
20
|
exports.queryCategorySamplesWithAnchor = queryCategorySamplesWithAnchor;
|
|
21
21
|
exports.getMostRecentCategorySample = getMostRecentCategorySample;
|
|
@@ -123,6 +123,16 @@ Promise.resolve(undefined));
|
|
|
123
123
|
exports.startWatchApp = UnavailableFnFromModule('startWatchApp', Promise.resolve(false));
|
|
124
124
|
// StateOfMindModule functions
|
|
125
125
|
exports.queryStateOfMindSamples = UnavailableFnFromModule('queryStateOfMindSamples', Promise.resolve([]));
|
|
126
|
+
exports.queryStateOfMindSamplesWithAnchor = UnavailableFnFromModule('queryStateOfMindSamplesWithAnchor', Promise.resolve({
|
|
127
|
+
samples: [],
|
|
128
|
+
deletedSamples: [],
|
|
129
|
+
newAnchor: '',
|
|
130
|
+
}));
|
|
131
|
+
exports.queryCorrelationSamplesWithAnchor = UnavailableFnFromModule('queryCorrelationSamplesWithAnchor', Promise.resolve({
|
|
132
|
+
correlations: [],
|
|
133
|
+
deletedSamples: [],
|
|
134
|
+
newAnchor: '',
|
|
135
|
+
}));
|
|
126
136
|
exports.saveStateOfMindSample = UnavailableFnFromModule('saveStateOfMindSample', Promise.resolve(false));
|
|
127
137
|
// Utility functions (from original export list)
|
|
128
138
|
function getMostRecentCategorySample(_identifier) {
|
|
@@ -166,8 +176,19 @@ const subscribeToQuantitySamples = UnavailableFnFromModule('subscribeToQuantityS
|
|
|
166
176
|
remove: () => false,
|
|
167
177
|
}); // Mocking the observer query UUID
|
|
168
178
|
exports.subscribeToQuantitySamples = subscribeToQuantitySamples;
|
|
169
|
-
|
|
170
|
-
|
|
179
|
+
exports.currentAppSource = UnavailableFnFromModule('currentAppSource', {
|
|
180
|
+
bundleIdentifier: '',
|
|
181
|
+
name: '',
|
|
182
|
+
}); // Mocking callback structure
|
|
183
|
+
exports.queryMedications = UnavailableFnFromModule('queryMedications', Promise.resolve([])); // Mocking callback structure
|
|
184
|
+
exports.queryMedicationEvents = UnavailableFnFromModule('queryMedicationEvents', Promise.resolve([])); // Mocking callback structure
|
|
185
|
+
exports.queryMedicationEventsWithAnchor = UnavailableFnFromModule('queryMedicationEventsWithAnchor', Promise.resolve({ newAnchor: '', samples: [], deletedSamples: [] })); // Mocking callback structure
|
|
186
|
+
exports.useSubscribeToQuantitySamples = UnavailableFnFromModule('useSubscribeToQuantitySamples', undefined);
|
|
187
|
+
exports.useSubscribeToCategorySamples = UnavailableFnFromModule('useSubscribeToCategorySamples', undefined);
|
|
188
|
+
exports.subscribeToCategorySamples = UnavailableFnFromModule('subscribeToCategorySamples', {
|
|
189
|
+
remove: () => false,
|
|
190
|
+
}); // Mocking the observer query UUID
|
|
191
|
+
exports.requestMedicationsAuthorization = UnavailableFnFromModule('requestMedicationsAuthorization', Promise.resolve(false)); // Mocking callback structure
|
|
171
192
|
// --- Default Export ---
|
|
172
193
|
// This attempts to match the structure of the default export from index.ios.ts
|
|
173
194
|
const HealthkitModule = {
|
|
@@ -218,9 +239,17 @@ const HealthkitModule = {
|
|
|
218
239
|
startWatchApp: exports.startWatchApp,
|
|
219
240
|
isProtectedDataAvailable: exports.isProtectedDataAvailable,
|
|
220
241
|
queryStateOfMindSamples: exports.queryStateOfMindSamples,
|
|
242
|
+
queryStateOfMindSamplesWithAnchor: exports.queryStateOfMindSamplesWithAnchor,
|
|
221
243
|
saveStateOfMindSample: exports.saveStateOfMindSample,
|
|
222
244
|
subscribeToQuantitySamples,
|
|
223
|
-
useSubscribeToQuantitySamples,
|
|
245
|
+
useSubscribeToQuantitySamples: exports.useSubscribeToQuantitySamples,
|
|
246
|
+
queryCorrelationSamplesWithAnchor: exports.queryCorrelationSamplesWithAnchor,
|
|
247
|
+
queryMedications: exports.queryMedications,
|
|
248
|
+
queryMedicationEvents: exports.queryMedicationEvents,
|
|
249
|
+
queryMedicationEventsWithAnchor: exports.queryMedicationEventsWithAnchor,
|
|
250
|
+
requestMedicationsAuthorization: exports.requestMedicationsAuthorization,
|
|
251
|
+
subscribeToCategorySamples: exports.subscribeToCategorySamples,
|
|
252
|
+
currentAppSource: exports.currentAppSource,
|
|
224
253
|
// Hooks
|
|
225
254
|
useMostRecentCategorySample,
|
|
226
255
|
useMostRecentQuantitySample: exports.useMostRecentQuantitySample,
|
|
@@ -228,6 +257,7 @@ const HealthkitModule = {
|
|
|
228
257
|
useSubscribeToChanges: exports.useSubscribeToChanges,
|
|
229
258
|
useHealthkitAuthorization: exports.useHealthkitAuthorization,
|
|
230
259
|
useIsHealthDataAvailable: exports.useIsHealthDataAvailable,
|
|
260
|
+
useSubscribeToCategorySamples: exports.useSubscribeToCategorySamples,
|
|
231
261
|
useSources: exports.useSources,
|
|
232
262
|
useStatisticsForQuantity: exports.useStatisticsForQuantity,
|
|
233
263
|
getBiologicalSexAsync: exports.getBiologicalSexAsync,
|
|
@@ -14,7 +14,7 @@ function useStatisticsForQuantity(identifier, options, from, to, unit) {
|
|
|
14
14
|
optionsRef.current = options;
|
|
15
15
|
}, [options]);
|
|
16
16
|
const update = (0, react_1.useCallback)(async () => {
|
|
17
|
-
const res = await modules_1.QuantityTypes.queryStatisticsForQuantity(identifier, optionsRef.current, { filter: { startDate: from, endDate: to }, unit });
|
|
17
|
+
const res = await modules_1.QuantityTypes.queryStatisticsForQuantity(identifier, optionsRef.current, { filter: { date: { startDate: from, endDate: to } }, unit });
|
|
18
18
|
setResult(res);
|
|
19
19
|
}, [identifier, from, to, unit]);
|
|
20
20
|
(0, react_1.useEffect)(() => {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSubscribeToCategorySamples = useSubscribeToCategorySamples;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const subscribeToCategorySamples_1 = require("../utils/subscribeToCategorySamples");
|
|
6
|
+
function useSubscribeToCategorySamples(identifier, onChange) {
|
|
7
|
+
const onChangeRef = (0, react_1.useRef)(onChange);
|
|
8
|
+
(0, react_1.useEffect)(() => {
|
|
9
|
+
onChangeRef.current = onChange;
|
|
10
|
+
}, [onChange]);
|
|
11
|
+
(0, react_1.useEffect)(() => {
|
|
12
|
+
const subscription = (0, subscribeToCategorySamples_1.subscribeToCategorySamples)(identifier, (args) => {
|
|
13
|
+
onChangeRef.current(args);
|
|
14
|
+
});
|
|
15
|
+
return () => {
|
|
16
|
+
subscription.remove();
|
|
17
|
+
};
|
|
18
|
+
}, [identifier]);
|
|
19
|
+
}
|
|
20
|
+
exports.default = useSubscribeToCategorySamples;
|
package/lib/commonjs/modules.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StateOfMind = exports.HeartbeatSeries = exports.Electrocardiograms = exports.CorrelationTypes = exports.CategoryTypes = exports.QuantityTypes = exports.Characteristics = exports.Workouts = exports.Core = void 0;
|
|
3
|
+
exports.StateOfMind = exports.HeartbeatSeries = exports.Electrocardiograms = exports.CorrelationTypes = exports.CategoryTypes = exports.QuantityTypes = exports.Characteristics = exports.Workouts = exports.Medication = exports.Core = void 0;
|
|
4
4
|
const react_native_nitro_modules_1 = require("react-native-nitro-modules");
|
|
5
5
|
exports.Core = react_native_nitro_modules_1.NitroModules.createHybridObject('CoreModule');
|
|
6
|
+
exports.Medication = react_native_nitro_modules_1.NitroModules.createHybridObject('MedicationModule');
|
|
6
7
|
exports.Workouts = react_native_nitro_modules_1.NitroModules.createHybridObject('WorkoutsModule');
|
|
7
8
|
exports.Characteristics = react_native_nitro_modules_1.NitroModules.createHybridObject('CharacteristicTypeModule');
|
|
8
9
|
exports.QuantityTypes = react_native_nitro_modules_1.NitroModules.createHybridObject('QuantityTypeModule');
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var MedicationDoseEventScheduleType;
|
|
4
|
+
(function (MedicationDoseEventScheduleType) {
|
|
5
|
+
MedicationDoseEventScheduleType[MedicationDoseEventScheduleType["asNeeded"] = 1] = "asNeeded";
|
|
6
|
+
/// The person logged this dose event in response to a scheduled medication reminder.
|
|
7
|
+
MedicationDoseEventScheduleType[MedicationDoseEventScheduleType["schedule"] = 2] = "schedule";
|
|
8
|
+
})(MedicationDoseEventScheduleType || (MedicationDoseEventScheduleType = {}));
|
|
9
|
+
var MedicationDoseEventLogStatus;
|
|
10
|
+
(function (MedicationDoseEventLogStatus) {
|
|
11
|
+
MedicationDoseEventLogStatus[MedicationDoseEventLogStatus["notInteracted"] = 1] = "notInteracted";
|
|
12
|
+
/// The system assigns this status when it fails to deliver a scheduled medication notification.
|
|
13
|
+
///
|
|
14
|
+
/// The system can generate this status because of a person's notification
|
|
15
|
+
/// restrictions or issues with notification delivery.
|
|
16
|
+
MedicationDoseEventLogStatus[MedicationDoseEventLogStatus["notificationNotSent"] = 2] = "notificationNotSent";
|
|
17
|
+
/// The person snoozes a scheduled medication notification.
|
|
18
|
+
MedicationDoseEventLogStatus[MedicationDoseEventLogStatus["snoozed"] = 3] = "snoozed";
|
|
19
|
+
/// The person logs that they took the medication dose.
|
|
20
|
+
MedicationDoseEventLogStatus[MedicationDoseEventLogStatus["taken"] = 4] = "taken";
|
|
21
|
+
/// The person logs that they skipped the medication dose.
|
|
22
|
+
MedicationDoseEventLogStatus[MedicationDoseEventLogStatus["skipped"] = 5] = "skipped";
|
|
23
|
+
/// The person undoes a previously logged medication status.
|
|
24
|
+
///
|
|
25
|
+
/// The system clears the prior status.
|
|
26
|
+
MedicationDoseEventLogStatus[MedicationDoseEventLogStatus["notLogged"] = 6] = "notLogged";
|
|
27
|
+
})(MedicationDoseEventLogStatus || (MedicationDoseEventLogStatus = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ElectrocardiogramTypeIdentifier = exports.HeartbeatSeriesTypeIdentifier = exports.StateOfMindTypeIdentifier = exports.WorkoutRouteTypeIdentifier = exports.WorkoutTypeIdentifier = void 0;
|
|
3
|
+
exports.UserAnnotatedMedicationTypeIdentifier = exports.ElectrocardiogramTypeIdentifier = exports.HeartbeatSeriesTypeIdentifier = exports.StateOfMindTypeIdentifier = exports.WorkoutRouteTypeIdentifier = exports.WorkoutTypeIdentifier = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Represents a workout type identifier.
|
|
6
6
|
* @see {@link https://developer.apple.com/documentation/healthkit/hkworkouttypeidentifier Apple Docs HKWorkoutTypeIdentifier}
|
|
@@ -26,3 +26,4 @@ exports.HeartbeatSeriesTypeIdentifier = 'HKDataTypeIdentifierHeartbeatSeries';
|
|
|
26
26
|
* @see {@link https://developer.apple.com/documentation/healthkit/hkelectrocardiogramtype Apple Docs HKElectrocardiogramType}
|
|
27
27
|
*/
|
|
28
28
|
exports.ElectrocardiogramTypeIdentifier = 'HKElectrocardiogramType';
|
|
29
|
+
exports.UserAnnotatedMedicationTypeIdentifier = 'HKUserAnnotatedMedicationTypeIdentifier';
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HeartRateMotionContext = exports.InsulinDeliveryReason = void 0;
|
|
3
|
+
exports.HeartRateMotionContext = exports.InsulinDeliveryReason = exports.AggregationStyle = void 0;
|
|
4
|
+
var AggregationStyle;
|
|
5
|
+
(function (AggregationStyle) {
|
|
6
|
+
AggregationStyle[AggregationStyle["cumulative"] = 0] = "cumulative";
|
|
7
|
+
AggregationStyle[AggregationStyle["discreteArithmetic"] = 1] = "discreteArithmetic";
|
|
8
|
+
AggregationStyle[AggregationStyle["discreteTemporallyWeighted"] = 2] = "discreteTemporallyWeighted";
|
|
9
|
+
AggregationStyle[AggregationStyle["discreteEquivalentContinuousLevel"] = 3] = "discreteEquivalentContinuousLevel";
|
|
10
|
+
})(AggregationStyle || (exports.AggregationStyle = AggregationStyle = {}));
|
|
4
11
|
/**
|
|
5
12
|
* @see {@link https://developer.apple.com/documentation/healthkit/hkinsulindeliveryreason Apple Docs }
|
|
6
13
|
*/
|
|
@@ -1,2 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComparisonPredicateOperator = void 0;
|
|
4
|
+
var ComparisonPredicateOperator;
|
|
5
|
+
(function (ComparisonPredicateOperator) {
|
|
6
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["lessThan"] = 0] = "lessThan";
|
|
7
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["lessThanOrEqualTo"] = 1] = "lessThanOrEqualTo";
|
|
8
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["greaterThan"] = 2] = "greaterThan";
|
|
9
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["greaterThanOrEqualTo"] = 3] = "greaterThanOrEqualTo";
|
|
10
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["equalTo"] = 4] = "equalTo";
|
|
11
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["notEqualTo"] = 5] = "notEqualTo";
|
|
12
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["matches"] = 6] = "matches";
|
|
13
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["like"] = 7] = "like";
|
|
14
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["beginsWith"] = 8] = "beginsWith";
|
|
15
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["endsWith"] = 9] = "endsWith";
|
|
16
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["IN"] = 10] = "IN";
|
|
17
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["customSelector"] = 11] = "customSelector";
|
|
18
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["contains"] = 99] = "contains";
|
|
19
|
+
ComparisonPredicateOperator[ComparisonPredicateOperator["between"] = 100] = "between";
|
|
20
|
+
})(ComparisonPredicateOperator || (exports.ComparisonPredicateOperator = ComparisonPredicateOperator = {}));
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.WeatherCondition = void 0;
|
|
4
4
|
// documented at https://developer.apple.com/documentation/healthkit/hkweathercondition
|
|
5
|
-
var
|
|
6
|
-
(function (
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
})(
|
|
5
|
+
var WeatherCondition;
|
|
6
|
+
(function (WeatherCondition) {
|
|
7
|
+
WeatherCondition[WeatherCondition["none"] = 0] = "none";
|
|
8
|
+
WeatherCondition[WeatherCondition["clear"] = 1] = "clear";
|
|
9
|
+
WeatherCondition[WeatherCondition["fair"] = 2] = "fair";
|
|
10
|
+
WeatherCondition[WeatherCondition["partlyCloudy"] = 3] = "partlyCloudy";
|
|
11
|
+
WeatherCondition[WeatherCondition["mostlyCloudy"] = 4] = "mostlyCloudy";
|
|
12
|
+
WeatherCondition[WeatherCondition["cloudy"] = 5] = "cloudy";
|
|
13
|
+
WeatherCondition[WeatherCondition["foggy"] = 6] = "foggy";
|
|
14
|
+
WeatherCondition[WeatherCondition["haze"] = 7] = "haze";
|
|
15
|
+
WeatherCondition[WeatherCondition["windy"] = 8] = "windy";
|
|
16
|
+
WeatherCondition[WeatherCondition["blustery"] = 9] = "blustery";
|
|
17
|
+
WeatherCondition[WeatherCondition["smoky"] = 10] = "smoky";
|
|
18
|
+
WeatherCondition[WeatherCondition["dust"] = 11] = "dust";
|
|
19
|
+
WeatherCondition[WeatherCondition["snow"] = 12] = "snow";
|
|
20
|
+
WeatherCondition[WeatherCondition["hail"] = 13] = "hail";
|
|
21
|
+
WeatherCondition[WeatherCondition["sleet"] = 14] = "sleet";
|
|
22
|
+
WeatherCondition[WeatherCondition["freezingDrizzle"] = 15] = "freezingDrizzle";
|
|
23
|
+
WeatherCondition[WeatherCondition["freezingRain"] = 16] = "freezingRain";
|
|
24
|
+
WeatherCondition[WeatherCondition["mixedRainAndHail"] = 17] = "mixedRainAndHail";
|
|
25
|
+
WeatherCondition[WeatherCondition["mixedRainAndSnow"] = 18] = "mixedRainAndSnow";
|
|
26
|
+
WeatherCondition[WeatherCondition["mixedRainAndSleet"] = 19] = "mixedRainAndSleet";
|
|
27
|
+
WeatherCondition[WeatherCondition["mixedSnowAndSleet"] = 20] = "mixedSnowAndSleet";
|
|
28
|
+
WeatherCondition[WeatherCondition["drizzle"] = 21] = "drizzle";
|
|
29
|
+
WeatherCondition[WeatherCondition["scatteredShowers"] = 22] = "scatteredShowers";
|
|
30
|
+
WeatherCondition[WeatherCondition["showers"] = 23] = "showers";
|
|
31
|
+
WeatherCondition[WeatherCondition["thunderstorms"] = 24] = "thunderstorms";
|
|
32
|
+
WeatherCondition[WeatherCondition["tropicalStorm"] = 25] = "tropicalStorm";
|
|
33
|
+
WeatherCondition[WeatherCondition["hurricane"] = 26] = "hurricane";
|
|
34
|
+
WeatherCondition[WeatherCondition["tornado"] = 27] = "tornado";
|
|
35
|
+
})(WeatherCondition || (exports.WeatherCondition = WeatherCondition = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkoutEventType = exports.
|
|
3
|
+
exports.WorkoutEventType = exports.WorkoutActivityType = void 0;
|
|
4
4
|
var WorkoutActivityType;
|
|
5
5
|
(function (WorkoutActivityType) {
|
|
6
6
|
WorkoutActivityType[WorkoutActivityType["americanFootball"] = 1] = "americanFootball";
|
|
@@ -88,38 +88,6 @@ var WorkoutActivityType;
|
|
|
88
88
|
WorkoutActivityType[WorkoutActivityType["underwaterDiving"] = 84] = "underwaterDiving";
|
|
89
89
|
WorkoutActivityType[WorkoutActivityType["other"] = 3000] = "other";
|
|
90
90
|
})(WorkoutActivityType || (exports.WorkoutActivityType = WorkoutActivityType = {}));
|
|
91
|
-
// documented at https://developer.apple.com/documentation/healthkit/hkweathercondition
|
|
92
|
-
var WeatherCondition;
|
|
93
|
-
(function (WeatherCondition) {
|
|
94
|
-
WeatherCondition[WeatherCondition["none"] = 0] = "none";
|
|
95
|
-
WeatherCondition[WeatherCondition["clear"] = 1] = "clear";
|
|
96
|
-
WeatherCondition[WeatherCondition["fair"] = 2] = "fair";
|
|
97
|
-
WeatherCondition[WeatherCondition["partlyCloudy"] = 3] = "partlyCloudy";
|
|
98
|
-
WeatherCondition[WeatherCondition["mostlyCloudy"] = 4] = "mostlyCloudy";
|
|
99
|
-
WeatherCondition[WeatherCondition["cloudy"] = 5] = "cloudy";
|
|
100
|
-
WeatherCondition[WeatherCondition["foggy"] = 6] = "foggy";
|
|
101
|
-
WeatherCondition[WeatherCondition["haze"] = 7] = "haze";
|
|
102
|
-
WeatherCondition[WeatherCondition["windy"] = 8] = "windy";
|
|
103
|
-
WeatherCondition[WeatherCondition["blustery"] = 9] = "blustery";
|
|
104
|
-
WeatherCondition[WeatherCondition["smoky"] = 10] = "smoky";
|
|
105
|
-
WeatherCondition[WeatherCondition["dust"] = 11] = "dust";
|
|
106
|
-
WeatherCondition[WeatherCondition["snow"] = 12] = "snow";
|
|
107
|
-
WeatherCondition[WeatherCondition["hail"] = 13] = "hail";
|
|
108
|
-
WeatherCondition[WeatherCondition["sleet"] = 14] = "sleet";
|
|
109
|
-
WeatherCondition[WeatherCondition["freezingDrizzle"] = 15] = "freezingDrizzle";
|
|
110
|
-
WeatherCondition[WeatherCondition["freezingRain"] = 16] = "freezingRain";
|
|
111
|
-
WeatherCondition[WeatherCondition["mixedRainAndHail"] = 17] = "mixedRainAndHail";
|
|
112
|
-
WeatherCondition[WeatherCondition["mixedRainAndSnow"] = 18] = "mixedRainAndSnow";
|
|
113
|
-
WeatherCondition[WeatherCondition["mixedRainAndSleet"] = 19] = "mixedRainAndSleet";
|
|
114
|
-
WeatherCondition[WeatherCondition["mixedSnowAndSleet"] = 20] = "mixedSnowAndSleet";
|
|
115
|
-
WeatherCondition[WeatherCondition["drizzle"] = 21] = "drizzle";
|
|
116
|
-
WeatherCondition[WeatherCondition["scatteredShowers"] = 22] = "scatteredShowers";
|
|
117
|
-
WeatherCondition[WeatherCondition["showers"] = 23] = "showers";
|
|
118
|
-
WeatherCondition[WeatherCondition["thunderstorms"] = 24] = "thunderstorms";
|
|
119
|
-
WeatherCondition[WeatherCondition["tropicalStorm"] = 25] = "tropicalStorm";
|
|
120
|
-
WeatherCondition[WeatherCondition["hurricane"] = 26] = "hurricane";
|
|
121
|
-
WeatherCondition[WeatherCondition["tornado"] = 27] = "tornado";
|
|
122
|
-
})(WeatherCondition || (exports.WeatherCondition = WeatherCondition = {}));
|
|
123
91
|
var WorkoutEventType;
|
|
124
92
|
(function (WorkoutEventType) {
|
|
125
93
|
WorkoutEventType[WorkoutEventType["pause"] = 1] = "pause";
|
|
@@ -131,20 +99,3 @@ var WorkoutEventType;
|
|
|
131
99
|
WorkoutEventType[WorkoutEventType["segment"] = 7] = "segment";
|
|
132
100
|
WorkoutEventType[WorkoutEventType["pauseOrResumeRequest"] = 8] = "pauseOrResumeRequest";
|
|
133
101
|
})(WorkoutEventType || (exports.WorkoutEventType = WorkoutEventType = {}));
|
|
134
|
-
var ComparisonPredicateOperator;
|
|
135
|
-
(function (ComparisonPredicateOperator) {
|
|
136
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["lessThan"] = 0] = "lessThan";
|
|
137
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["lessThanOrEqualTo"] = 1] = "lessThanOrEqualTo";
|
|
138
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["greaterThan"] = 2] = "greaterThan";
|
|
139
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["greaterThanOrEqualTo"] = 3] = "greaterThanOrEqualTo";
|
|
140
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["equalTo"] = 4] = "equalTo";
|
|
141
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["notEqualTo"] = 5] = "notEqualTo";
|
|
142
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["matches"] = 6] = "matches";
|
|
143
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["like"] = 7] = "like";
|
|
144
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["beginsWith"] = 8] = "beginsWith";
|
|
145
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["endsWith"] = 9] = "endsWith";
|
|
146
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["in"] = 10] = "in";
|
|
147
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["customSelector"] = 11] = "customSelector";
|
|
148
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["contains"] = 99] = "contains";
|
|
149
|
-
ComparisonPredicateOperator[ComparisonPredicateOperator["between"] = 100] = "between";
|
|
150
|
-
})(ComparisonPredicateOperator || (ComparisonPredicateOperator = {}));
|
|
@@ -5,7 +5,7 @@ const modules_1 = require("../modules");
|
|
|
5
5
|
async function getCategorySampleById(identifier, uuid) {
|
|
6
6
|
const samples = await modules_1.CategoryTypes.queryCategorySamples(identifier, {
|
|
7
7
|
limit: 1,
|
|
8
|
-
filter: {
|
|
8
|
+
filter: { uuids: [uuid] },
|
|
9
9
|
});
|
|
10
10
|
return samples[0];
|
|
11
11
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.subscribeToCategorySamples = subscribeToCategorySamples;
|
|
4
|
+
const modules_1 = require("../modules");
|
|
5
|
+
const subscribeToChanges_1 = require("./subscribeToChanges");
|
|
6
|
+
function subscribeToCategorySamples(identifier, callback, after = new Date()) {
|
|
7
|
+
return (0, subscribeToChanges_1.subscribeToChanges)(identifier, async ({ errorMessage }) => {
|
|
8
|
+
if (errorMessage) {
|
|
9
|
+
return callback({
|
|
10
|
+
typeIdentifier: identifier,
|
|
11
|
+
errorMessage,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
const samplesAfterLast = await modules_1.CategoryTypes.queryCategorySamples(identifier, {
|
|
15
|
+
limit: 0,
|
|
16
|
+
filter: {
|
|
17
|
+
date: {
|
|
18
|
+
startDate: after,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
if (samplesAfterLast.length > 0) {
|
|
23
|
+
callback({
|
|
24
|
+
typeIdentifier: identifier,
|
|
25
|
+
samples: samplesAfterLast,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -3,19 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.subscribeToQuantitySamples = void 0;
|
|
4
4
|
const modules_1 = require("../modules");
|
|
5
5
|
const subscribeToChanges_1 = require("./subscribeToChanges");
|
|
6
|
-
const subscribeToQuantitySamples = (identifier, callback, after) => {
|
|
7
|
-
let anchor;
|
|
8
|
-
const afterDate = after ?? new Date();
|
|
9
|
-
const init = async () => {
|
|
10
|
-
// we need to do an initial query to get a handle for the deletedSamples
|
|
11
|
-
const { newAnchor } = await modules_1.QuantityTypes.queryQuantitySamplesWithAnchor(identifier, {
|
|
12
|
-
filter: {
|
|
13
|
-
startDate: afterDate,
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
anchor = newAnchor;
|
|
17
|
-
};
|
|
18
|
-
init();
|
|
6
|
+
const subscribeToQuantitySamples = (identifier, callback, after = new Date()) => {
|
|
19
7
|
return (0, subscribeToChanges_1.subscribeToChanges)(identifier, async ({ errorMessage }) => {
|
|
20
8
|
if (errorMessage) {
|
|
21
9
|
return callback({
|
|
@@ -23,23 +11,18 @@ const subscribeToQuantitySamples = (identifier, callback, after) => {
|
|
|
23
11
|
errorMessage,
|
|
24
12
|
});
|
|
25
13
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const { samples, newAnchor, deletedSamples } = await modules_1.QuantityTypes.queryQuantitySamplesWithAnchor(identifier, {
|
|
29
|
-
anchor,
|
|
14
|
+
const samplesAfterLast = await modules_1.QuantityTypes.queryQuantitySamples(identifier, {
|
|
15
|
+
limit: 0,
|
|
30
16
|
filter: {
|
|
31
|
-
|
|
17
|
+
date: {
|
|
18
|
+
startDate: after,
|
|
19
|
+
},
|
|
32
20
|
},
|
|
33
21
|
});
|
|
34
|
-
|
|
35
|
-
const hasNewSamples = samples.length > 0 ||
|
|
36
|
-
(deletedSamples.length > 0 && hadAnchorWhenDoingQuery);
|
|
37
|
-
if (hasNewSamples) {
|
|
22
|
+
if (samplesAfterLast.length > 0) {
|
|
38
23
|
callback({
|
|
39
24
|
typeIdentifier: identifier,
|
|
40
|
-
samples,
|
|
41
|
-
anchor: newAnchor,
|
|
42
|
-
deletedSamples: hadAnchorWhenDoingQuery ? deletedSamples : [],
|
|
25
|
+
samples: samplesAfterLast,
|
|
43
26
|
});
|
|
44
27
|
}
|
|
45
28
|
});
|
|
@@ -6,18 +6,20 @@ import useMostRecentQuantitySample from './hooks/useMostRecentQuantitySample';
|
|
|
6
6
|
import useMostRecentWorkout from './hooks/useMostRecentWorkout';
|
|
7
7
|
import useSources from './hooks/useSources';
|
|
8
8
|
import useStatisticsForQuantity from './hooks/useStatisticsForQuantity';
|
|
9
|
+
import useSubscribeToCategorySamples from './hooks/useSubscribeToCategorySamples';
|
|
9
10
|
import useSubscribeToChanges from './hooks/useSubscribeToChanges';
|
|
10
11
|
import useSubscribeToQuantitySamples from './hooks/useSubscribeToQuantitySamples';
|
|
11
|
-
import { CategoryTypes, Characteristics, Core, CorrelationTypes, Electrocardiograms, HeartbeatSeries, QuantityTypes, StateOfMind, Workouts, } from './modules';
|
|
12
|
+
import { CategoryTypes, Characteristics, Core, CorrelationTypes, Electrocardiograms, HeartbeatSeries, Medication, QuantityTypes, StateOfMind, Workouts, } from './modules';
|
|
12
13
|
import getMostRecentCategorySample from './utils/getMostRecentCategorySample';
|
|
13
14
|
import getMostRecentQuantitySample from './utils/getMostRecentQuantitySample';
|
|
14
15
|
import getMostRecentWorkout from './utils/getMostRecentWorkout';
|
|
15
16
|
import getPreferredUnit from './utils/getPreferredUnit';
|
|
17
|
+
import { subscribeToCategorySamples } from './utils/subscribeToCategorySamples';
|
|
16
18
|
import { subscribeToChanges } from './utils/subscribeToChanges';
|
|
17
19
|
import { subscribeToQuantitySamples } from './utils/subscribeToQuantitySamples';
|
|
18
20
|
export * from './types';
|
|
19
21
|
const currentMajorVersionIOS = Platform.OS === 'ios' ? Number.parseInt(Platform.Version, 10) : 0;
|
|
20
|
-
export { getMostRecentCategorySample, getMostRecentQuantitySample, getMostRecentWorkout, getPreferredUnit, subscribeToChanges, subscribeToQuantitySamples, useHealthkitAuthorization, useIsHealthDataAvailable, useMostRecentCategorySample, useMostRecentQuantitySample, useMostRecentWorkout, useSources, useStatisticsForQuantity, useSubscribeToChanges, useSubscribeToQuantitySamples, };
|
|
22
|
+
export { getMostRecentCategorySample, getMostRecentQuantitySample, getMostRecentWorkout, getPreferredUnit, subscribeToCategorySamples, subscribeToChanges, subscribeToQuantitySamples, useHealthkitAuthorization, useIsHealthDataAvailable, useMostRecentCategorySample, useMostRecentQuantitySample, useMostRecentWorkout, useSources, useStatisticsForQuantity, useSubscribeToCategorySamples, useSubscribeToChanges, useSubscribeToQuantitySamples, };
|
|
21
23
|
// Named exports - all functions bound to their respective modules
|
|
22
24
|
export const authorizationStatusFor = Core.authorizationStatusFor.bind(Core);
|
|
23
25
|
export const disableAllBackgroundDelivery = Core.disableAllBackgroundDelivery.bind(Core);
|
|
@@ -35,6 +37,7 @@ export const isHealthDataAvailableAsync = Core.isHealthDataAvailableAsync.bind(C
|
|
|
35
37
|
export const queryCategorySamples = CategoryTypes.queryCategorySamples.bind(CategoryTypes);
|
|
36
38
|
export const queryCategorySamplesWithAnchor = CategoryTypes.queryCategorySamplesWithAnchor.bind(CategoryTypes);
|
|
37
39
|
export const queryCorrelationSamples = CorrelationTypes.queryCorrelationSamples.bind(CorrelationTypes);
|
|
40
|
+
export const queryCorrelationSamplesWithAnchor = CorrelationTypes.queryCorrelationSamplesWithAnchor.bind(CorrelationTypes);
|
|
38
41
|
export const queryHeartbeatSeriesSamples = HeartbeatSeries.queryHeartbeatSeriesSamples.bind(HeartbeatSeries);
|
|
39
42
|
export const queryHeartbeatSeriesSamplesWithAnchor = HeartbeatSeries.queryHeartbeatSeriesSamplesWithAnchor.bind(HeartbeatSeries);
|
|
40
43
|
export const queryElectrocardiogramSamples = Electrocardiograms.queryElectrocardiogramSamples.bind(Electrocardiograms);
|
|
@@ -55,12 +58,18 @@ export const saveWorkoutSample = Workouts.saveWorkoutSample.bind(Workouts);
|
|
|
55
58
|
export const startWatchApp = Workouts.startWatchAppWithWorkoutConfiguration.bind(Workouts);
|
|
56
59
|
export const isProtectedDataAvailable = Core.isProtectedDataAvailable.bind(Core);
|
|
57
60
|
export const queryStateOfMindSamples = StateOfMind.queryStateOfMindSamples.bind(StateOfMind);
|
|
61
|
+
export const queryStateOfMindSamplesWithAnchor = StateOfMind.queryStateOfMindSamplesWithAnchor.bind(StateOfMind);
|
|
58
62
|
export const saveStateOfMindSample = StateOfMind.saveStateOfMindSample.bind(StateOfMind);
|
|
59
63
|
export const isQuantityCompatibleWithUnit = QuantityTypes.isQuantityCompatibleWithUnit.bind(QuantityTypes);
|
|
60
64
|
export const isObjectTypeAvailable = Core.isObjectTypeAvailable.bind(Core);
|
|
61
65
|
export const isObjectTypeAvailableAsync = Core.isObjectTypeAvailableAsync.bind(Core);
|
|
62
66
|
export const areObjectTypesAvailable = Core.areObjectTypesAvailable.bind(Core);
|
|
63
67
|
export const areObjectTypesAvailableAsync = Core.areObjectTypesAvailableAsync.bind(Core);
|
|
68
|
+
export const requestMedicationsAuthorization = Medication.requestMedicationsAuthorization.bind(Medication);
|
|
69
|
+
export const queryMedications = Medication.queryMedications.bind(Medication);
|
|
70
|
+
export const queryMedicationEvents = Medication.queryMedicationEvents.bind(Medication);
|
|
71
|
+
export const queryMedicationEventsWithAnchor = Medication.queryMedicationEventsWithAnchor.bind(Medication);
|
|
72
|
+
export const currentAppSource = Core.currentAppSource.bind(Core);
|
|
64
73
|
export const getBiologicalSexAsync = Characteristics.getBiologicalSexAsync.bind(Characteristics);
|
|
65
74
|
export const getBloodTypeAsync = Characteristics.getBloodTypeAsync.bind(Characteristics);
|
|
66
75
|
export const getDateOfBirthAsync = Characteristics.getDateOfBirthAsync.bind(Characteristics);
|
|
@@ -97,6 +106,7 @@ export default {
|
|
|
97
106
|
queryCategorySamples,
|
|
98
107
|
queryCategorySamplesWithAnchor,
|
|
99
108
|
queryCorrelationSamples,
|
|
109
|
+
queryCorrelationSamplesWithAnchor,
|
|
100
110
|
queryHeartbeatSeriesSamples,
|
|
101
111
|
queryHeartbeatSeriesSamplesWithAnchor,
|
|
102
112
|
queryElectrocardiogramSamples,
|
|
@@ -119,7 +129,15 @@ export default {
|
|
|
119
129
|
startWatchApp,
|
|
120
130
|
isProtectedDataAvailable,
|
|
121
131
|
queryStateOfMindSamples,
|
|
132
|
+
queryStateOfMindSamplesWithAnchor,
|
|
122
133
|
saveStateOfMindSample,
|
|
134
|
+
requestMedicationsAuthorization,
|
|
135
|
+
currentAppSource,
|
|
136
|
+
queryMedicationEventsWithAnchor,
|
|
137
|
+
queryMedicationEvents,
|
|
138
|
+
queryMedications,
|
|
139
|
+
subscribeToCategorySamples,
|
|
140
|
+
useSubscribeToCategorySamples,
|
|
123
141
|
// hooks
|
|
124
142
|
useMostRecentCategorySample,
|
|
125
143
|
useMostRecentQuantitySample,
|
package/lib/module/healthkit.js
CHANGED
|
@@ -101,6 +101,16 @@ Promise.resolve(undefined));
|
|
|
101
101
|
export const startWatchApp = UnavailableFnFromModule('startWatchApp', Promise.resolve(false));
|
|
102
102
|
// StateOfMindModule functions
|
|
103
103
|
export const queryStateOfMindSamples = UnavailableFnFromModule('queryStateOfMindSamples', Promise.resolve([]));
|
|
104
|
+
export const queryStateOfMindSamplesWithAnchor = UnavailableFnFromModule('queryStateOfMindSamplesWithAnchor', Promise.resolve({
|
|
105
|
+
samples: [],
|
|
106
|
+
deletedSamples: [],
|
|
107
|
+
newAnchor: '',
|
|
108
|
+
}));
|
|
109
|
+
export const queryCorrelationSamplesWithAnchor = UnavailableFnFromModule('queryCorrelationSamplesWithAnchor', Promise.resolve({
|
|
110
|
+
correlations: [],
|
|
111
|
+
deletedSamples: [],
|
|
112
|
+
newAnchor: '',
|
|
113
|
+
}));
|
|
104
114
|
export const saveStateOfMindSample = UnavailableFnFromModule('saveStateOfMindSample', Promise.resolve(false));
|
|
105
115
|
// Utility functions (from original export list)
|
|
106
116
|
export function getMostRecentCategorySample(_identifier) {
|
|
@@ -144,8 +154,19 @@ const subscribeToQuantitySamples = UnavailableFnFromModule('subscribeToQuantityS
|
|
|
144
154
|
remove: () => false,
|
|
145
155
|
}); // Mocking the observer query UUID
|
|
146
156
|
export { subscribeToQuantitySamples };
|
|
147
|
-
const
|
|
148
|
-
|
|
157
|
+
export const currentAppSource = UnavailableFnFromModule('currentAppSource', {
|
|
158
|
+
bundleIdentifier: '',
|
|
159
|
+
name: '',
|
|
160
|
+
}); // Mocking callback structure
|
|
161
|
+
export const queryMedications = UnavailableFnFromModule('queryMedications', Promise.resolve([])); // Mocking callback structure
|
|
162
|
+
export const queryMedicationEvents = UnavailableFnFromModule('queryMedicationEvents', Promise.resolve([])); // Mocking callback structure
|
|
163
|
+
export const queryMedicationEventsWithAnchor = UnavailableFnFromModule('queryMedicationEventsWithAnchor', Promise.resolve({ newAnchor: '', samples: [], deletedSamples: [] })); // Mocking callback structure
|
|
164
|
+
export const useSubscribeToQuantitySamples = UnavailableFnFromModule('useSubscribeToQuantitySamples', undefined);
|
|
165
|
+
export const useSubscribeToCategorySamples = UnavailableFnFromModule('useSubscribeToCategorySamples', undefined);
|
|
166
|
+
export const subscribeToCategorySamples = UnavailableFnFromModule('subscribeToCategorySamples', {
|
|
167
|
+
remove: () => false,
|
|
168
|
+
}); // Mocking the observer query UUID
|
|
169
|
+
export const requestMedicationsAuthorization = UnavailableFnFromModule('requestMedicationsAuthorization', Promise.resolve(false)); // Mocking callback structure
|
|
149
170
|
// --- Default Export ---
|
|
150
171
|
// This attempts to match the structure of the default export from index.ios.ts
|
|
151
172
|
const HealthkitModule = {
|
|
@@ -196,9 +217,17 @@ const HealthkitModule = {
|
|
|
196
217
|
startWatchApp,
|
|
197
218
|
isProtectedDataAvailable,
|
|
198
219
|
queryStateOfMindSamples,
|
|
220
|
+
queryStateOfMindSamplesWithAnchor,
|
|
199
221
|
saveStateOfMindSample,
|
|
200
222
|
subscribeToQuantitySamples,
|
|
201
223
|
useSubscribeToQuantitySamples,
|
|
224
|
+
queryCorrelationSamplesWithAnchor,
|
|
225
|
+
queryMedications,
|
|
226
|
+
queryMedicationEvents,
|
|
227
|
+
queryMedicationEventsWithAnchor,
|
|
228
|
+
requestMedicationsAuthorization,
|
|
229
|
+
subscribeToCategorySamples,
|
|
230
|
+
currentAppSource,
|
|
202
231
|
// Hooks
|
|
203
232
|
useMostRecentCategorySample,
|
|
204
233
|
useMostRecentQuantitySample,
|
|
@@ -206,6 +235,7 @@ const HealthkitModule = {
|
|
|
206
235
|
useSubscribeToChanges,
|
|
207
236
|
useHealthkitAuthorization,
|
|
208
237
|
useIsHealthDataAvailable,
|
|
238
|
+
useSubscribeToCategorySamples,
|
|
209
239
|
useSources,
|
|
210
240
|
useStatisticsForQuantity,
|
|
211
241
|
getBiologicalSexAsync,
|
|
@@ -8,7 +8,7 @@ export function useStatisticsForQuantity(identifier, options, from, to, unit) {
|
|
|
8
8
|
optionsRef.current = options;
|
|
9
9
|
}, [options]);
|
|
10
10
|
const update = useCallback(async () => {
|
|
11
|
-
const res = await QuantityTypes.queryStatisticsForQuantity(identifier, optionsRef.current, { filter: { startDate: from, endDate: to }, unit });
|
|
11
|
+
const res = await QuantityTypes.queryStatisticsForQuantity(identifier, optionsRef.current, { filter: { date: { startDate: from, endDate: to } }, unit });
|
|
12
12
|
setResult(res);
|
|
13
13
|
}, [identifier, from, to, unit]);
|
|
14
14
|
useEffect(() => {
|