react-native-camera-kit/src/CameraKitGalleryView.ios.js
2017-02-28 15:29:52 +02:00

47 lines
1.8 KiB
JavaScript

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 = {...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));
}
return <GalleryView {...transformedProps}/>
}
async getSelectedImages() {
const selectedImages = await GalleryViewManager.getSelectedImages();
return selectedImages;
}
async refreshGalleryView(selectedImages = []) {
const isSuccess = await GalleryViewManager.refreshGalleryView(selectedImages);
return isSuccess;
}
}