UNPKG

react-native-vision-camera

Version:

VisionCamera is the fastest and most powerful Camera for react-native.

30 lines (27 loc) 916 B
import { useEffect } from 'react' import type { SharedValue } from 'react-native-reanimated' import type { CameraController } from '../../specs/CameraController.nitro' import { VisionCameraWorkletsProxy } from '../../third-party/VisionCameraWorkletsProxy' export function useExposureUpdater( controller: CameraController | undefined, exposure: number | SharedValue<number> | undefined, ): void { useEffect(() => { if (controller == null) return if (exposure == null) return if (typeof exposure === 'number') { // number controller.setExposureBias(exposure) return } else { // SharedValue<number> controller.setExposureBias(exposure.get()) const listener = VisionCameraWorkletsProxy.bindUIUpdatesToController( exposure, controller, 'setExposureBias', ) return () => listener.remove() } }, [controller, exposure]) }