import {useCallback} from 'react' import { useImagePickerContext, OpenCameraParams, OpenGalleryParams, } from '../../providers/ImagePickerProvider' export interface UseImagePickerReturns { /** * Opens the camera to take a photo. */ openCamera: (params?: OpenCameraParams) => Promise /** * Opens the gallery to select an image. */ openGallery: (params?: OpenGalleryParams) => Promise } export function useImagePicker(): UseImagePickerReturns { const {openCamera, openGallery} = useImagePickerContext() const openCameraWithQuality = useCallback( async ({cameraFacing, quality, customQuality}: OpenCameraParams = {}) => { const file = await openCamera({cameraFacing, quality, customQuality}) return file }, [openCamera] ) const openGalleryWithQuality = useCallback( async ({quality, customQuality}: OpenGalleryParams = {}) => { const file = await openGallery({quality, customQuality}) return file }, [openGallery] ) return { openCamera: openCameraWithQuality, openGallery: openGalleryWithQuality, } } /** * The `useImagePicker` hook provides access to camera and gallery functionality for selecting images. * @publicDocs */ export type UseImagePickerGeneratedType = () => UseImagePickerReturns