UNPKG

react-native-camera-kit

Version:

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

61 lines (49 loc) 2.42 kB
import _ from 'lodash'; import React, {Component} from 'react'; import { requireNativeComponent, NativeModules, processColor } from 'react-native'; const GalleryView = requireNativeComponent('CKGalleryView', null); const GalleryViewManager = NativeModules.CKGalleryViewManager; const ALL_PHOTOS = 'All Photos'; const DEFAULT_COLUMN_COUNT = 3; const resolveAssetSource = require('react-native/Libraries/Image/resolveAssetSource'); export default class CameraKitGalleryView extends Component { render() { const transformedProps = _.cloneDeep(this.props); transformedProps.albumName = this.props.albumName ? this.props.albumName : ALL_PHOTOS; transformedProps.columnCount = this.props.columnCount && this.props.columnCount > 0 ? this.props.columnCount : DEFAULT_COLUMN_COUNT; _.update(transformedProps, 'fileTypeSupport.unsupportedOverlayColor', (c) => processColor(c)); _.update(transformedProps, 'fileTypeSupport.unsupportedTextColor', (c) => processColor(c)); if (transformedProps.fileTypeSupport && transformedProps.fileTypeSupport.unsupportedImage) { _.update(transformedProps, 'fileTypeSupport.unsupportedImage', (image) => resolveAssetSource(image)); } if (_.get(transformedProps, 'customButtonStyle.image')) { _.update(transformedProps, 'customButtonStyle.image', (image) => resolveAssetSource(image)); } if (_.get(transformedProps, 'customButtonStyle.backgroundColor')) { _.update(transformedProps, 'customButtonStyle.backgroundColor', (c) => processColor(c)); } if (_.get(transformedProps, 'selection.selectedImage')) { _.update(transformedProps, 'selection.selectedImage', (image) => resolveAssetSource(image)); } if (_.get(transformedProps, 'selection.unselectedImage')) { _.update(transformedProps, 'selection.unselectedImage', (image) => resolveAssetSource(image)); } if (_.get(transformedProps, 'selection.overlayColor')) { _.update(transformedProps, 'selection.overlayColor', (c) => processColor(c)); } return <GalleryView {...transformedProps}/> } async getSelectedImages() { return await GalleryViewManager.getSelectedImages(); } async refreshGalleryView(selectedImages = []) { return await GalleryViewManager.refreshGalleryView(selectedImages); } modifyGalleryViewContentOffset (offset) { GalleryViewManager.modifyGalleryViewContentOffset(offset); } }