react-native-camera-kit/example/GalleryScreen.ios.js

120 lines
2.3 KiB
JavaScript
Raw Normal View History

2016-06-14 18:12:50 +03:00
import React, {Component} from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
ListView,
TouchableOpacity,
Image,
AlertIOS,
2016-06-28 12:14:28 +03:00
CameraRoll,
Dimensions
2016-06-14 18:12:50 +03:00
} from 'react-native';
import _ from 'lodash';
import {
2016-06-28 12:14:28 +03:00
CameraKitGalleryView
2016-06-14 18:12:50 +03:00
} from 'react-native-camera-kit';
var groupByEveryN = require('groupByEveryN');
2016-06-28 12:14:28 +03:00
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});
2016-06-14 18:12:50 +03:00
2016-06-28 12:14:28 +03:00
const size = Math.floor((Dimensions.get('window').width) / 3);
const innerSize = size - 6;
2016-06-14 18:12:50 +03:00
2016-06-28 12:14:28 +03:00
export default class GalleryScreenNative extends Component {
2016-06-14 18:12:50 +03:00
2016-06-28 12:14:28 +03:00
static navigatorButtons = {
rightButtons: [
{
title: 'Done',
id: 'navBarDone'
}
]
};
async onNavigatorEvent(event) {
if (event.type === 'NavBarButtonPress') {
if (event.id === 'navBarDone') {
const selected = await this.gallery.getSelectedImages();
this.props.navigator.push({
screen: 'media.PreviewScreen',
title: 'Preview',
backButtonTitle: 'Albums',
passProps: {
imagesData: selected.selectedImages
},
navigatorStyle: {
navBarHidden: true
}
});
}
2016-06-14 18:12:50 +03:00
}
}
2016-06-28 12:14:28 +03:00
constructor(props) {
super(props);
this.state = {
album: this.props.albumName,
2016-06-14 18:12:50 +03:00
}
}
render() {
return (
2016-06-28 12:14:28 +03:00
<CameraKitGalleryView
ref={(gallery) => {
this.gallery = gallery;
}}
style={{flex:1, margin: 20, backgroundColor: 'red', marginTop: 50}}
albumName={this.state.album}
minimumInteritemSpacing={10}
minimumLineSpacing={10}
columnCount={3}
2016-06-30 21:59:15 +03:00
onSelected={(result) => {
}}
/>
2016-06-28 12:14:28 +03:00
)
2016-06-14 18:12:50 +03:00
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
marginTop: 20
},
listView: {
//flex:1,
//flexDirection:'column',
paddingTop: 0,
2016-06-14 18:12:50 +03:00
margin: 8,
backgroundColor: '#D6DAC2',
},
row: {
flexDirection: 'column',
2016-06-14 18:12:50 +03:00
flex: 1,
},
image: {
2016-06-28 12:14:28 +03:00
width: innerSize,
height: innerSize,
alignItems: 'center',
justifyContent: 'center'
},
rowContainer: {
width: size,
height: size,
alignItems: 'center',
justifyContent: 'center',
2016-06-14 18:12:50 +03:00
},
});