UNPKG

react-native-camera-kit

Version:

Advanced native camera control with pre-defined aspect ratio, crop, etc

54 lines (42 loc) 1.7 kB
import * as _ from 'lodash'; import React, { Component } from 'react'; import { requireNativeComponent, NativeModules, processColor } from 'react-native'; const NativeCamera = requireNativeComponent('CameraView', null); const NativeCameraModule = NativeModules.CameraModule; export default class CameraKitCamera extends React.Component { render() { const transformedProps = _.cloneDeep(this.props); _.update(transformedProps, 'cameraOptions.ratioOverlayColor', (c) => processColor(c)); _.update(transformedProps, 'frameColor', (c) => processColor(c)); _.update(transformedProps, 'laserColor', (c) => processColor(c)); _.update(transformedProps, 'surfaceColor', (c) => processColor(c)); return <NativeCamera {...transformedProps}/> } async logData() { console.log('front Camera?', await NativeCameraModule.hasFrontCamera()); console.log('hasFlash?', await NativeCameraModule.hasFlashForCurrentCamera()); console.log('flashMode?', await NativeCameraModule.getFlashMode()); } static async requestDeviceCameraAuthorization() { return await NativeCameraModule.requestDeviceCameraAuthorization(); } async capture(saveToCameraRoll = true) { return await NativeCameraModule.capture(saveToCameraRoll); } async changeCamera() { return await NativeCameraModule.changeCamera(); } async setFlashMode(flashMode = 'auto') { return await NativeCameraModule.setFlashMode(flashMode); } static async checkDeviceCameraAuthorizationStatus() { return await NativeCameraModule.checkDeviceCameraAuthorizationStatus(); } static async hasCameraPermission() { return await NativeCameraModule.hasCameraPermission(); } }