feat: Add "Camera Devices" screen to Example (#1927)

* feat: Add "Camera Devices" screen to Example

* feat: Store device in MMKV
This commit is contained in:
Marc Rousavy
2023-10-05 14:52:03 +02:00
committed by GitHub
parent 658695dca5
commit 1843f7ac3a
8 changed files with 276 additions and 11 deletions

View File

@@ -0,0 +1,20 @@
import { useMMKVString } from 'react-native-mmkv'
import { CameraDevice } from '../../../src/CameraDevice'
import { useCallback, useMemo } from 'react'
import { useCameraDevices } from '../../../src/hooks/useCameraDevices'
export function usePreferredCameraDevice(): [CameraDevice | undefined, (device: CameraDevice) => void] {
const [preferredDeviceId, setPreferredDeviceId] = useMMKVString('camera.preferredDeviceId')
const set = useCallback(
(device: CameraDevice) => {
setPreferredDeviceId(device.id)
},
[setPreferredDeviceId],
)
const devices = useCameraDevices()
const device = useMemo(() => devices.find((d) => d.id === preferredDeviceId), [devices, preferredDeviceId])
return [device, set]
}