import React, { Component } from 'react';
import { View, FlatList, TouchableOpacity, StyleSheet } from 'react-native';
import Image from 'react-native-fast-image'
import ImageBackground from 'react-native-fast-image'
import LinearGradient from 'react-native-linear-gradient'
import Text from '../../components/Text';
import Carousel from 'react-native-snap-carousel'
import { itemWidth, sliderWidth } from '../../styles/SliderEntry.style'
import Icon from '../../components/Icon'
import {getMeterList,getRoomSlideList} from '../../api/UserApi';
import moment from 'moment';
import ImagePicker from 'react-native-image-crop-picker'
import IndicatorLoading from '../../components/IndicatorLoading';
import { NavigationEvents } from 'react-navigation';
import { t } from '../../utils/i18n';
export default class Meter extends Component {
constructor(props) {
super(props);
this.state = {
room_snap_index:0,
room_list:[],
cost_list:[],
image_selected: {},
selected_type: '',
isLoading: true,
};
this.onTakeCamera = this.onTakeCamera.bind(this)
this.selectedImage = this.selectedImage.bind(this)
this.getSlideList = this.getSlideList.bind(this)
this.getMeter = this.getMeter.bind(this)
}
componentWillUnmount() {
if(this.props && this.props.navigation && this.props.navigation.state && this.props.navigation.state.params && this.props.navigation.state.params.getNotification){
this.props.navigation.state.params.getNotification()
}
}
getMeter(){
this.setState({
isLoading: true
})
getMeterList()
.then(res => {
console.log('check response meter list ----------> ',res.data);
if(res.ok){
// let room_list = [
// {id: 87576, name: 'CN1-005', project_name: 'CNK', electric: 1264, water: 0}
// ]
this.setState({
room_list: res.data.rooms,
// room_list,
cost_list: res.data.data,
})
}
this.setState({isLoading:false})
})
}
getSlideList(room_id){
this.setState({
isLoading: true
})
getRoomSlideList(room_id)
.then(res => {
console.log('check response meter list ----------> ',res.data);
if(res.ok){
this.setState({
// room_list: res.data.rooms,
cost_list: res.data.data,
})
}
this.setState({isLoading:false})
})
}
onTakeCamera() {
ImagePicker.openCamera({
cropping: true,
width: 300,
height: 100,
includeExif: true
}).then(image => {
console.log('received image', image)
let image_meter = {
uri: image.path,
type: image.mime,
name: 'image_meter.jpg',
}
this.setState({
image_url: {uri: image.path, width: image.width, height: image.height, mime: image.mime},
images: null,
}, () => {
this.selectedImage(this.state.image_url)
})
}).catch(e => {console.log('e >>>> ', e)})
}
selectedImage(image_meter){
this.setState({
image_selected: image_meter,
},() => {
console.log('selected image ',this.state.image_selected)
if(this.state.selected_type == 'pea'){
this.props.navigation.navigate('PEAMeter',{image: this.state.image_selected,room_id: this.state.room_list[this.state.room_snap_index].id})
}else{
this.props.navigation.navigate('WaterMeter',{image: this.state.image_selected,room_id: this.state.room_list[this.state.room_snap_index].id})
}
})
}
_keyExtractor = (item, index) => 'meter_room_'+index;
_renderItem = ({item}) => (
{item.name}
{item.project_name}
{item.water}
{item.electric}
);
_keyExtractorCost = (item, index) => 'cost_list_'+index
_renderItemCost = ({item,index}) => (
// {}}>
{item.type == 'ค่าน้ำ' ? t('water_bill') : t('electric_unit')}
{t('unit')} {item.amount} {t('unit_price')}
{t('amount')} {item.cost} {t('baht')}
{moment(item.created_at).format('DD MMMM YYYY')}
//
);
render() {
return (
{
this.getMeter()
}}
/>
{
this.state.room_list.length > 0 &&
{ this._carousel = c }}
data={this.state.room_list}
renderItem={this._renderItem}
sliderWidth={sliderWidth}
itemWidth={itemWidth}
containerCustomStyle={{}}
slideStyle={{ justifyContent: 'center' }}
onSnapToItem={(item) => {
this.setState({room_snap_index:item})
this.getSlideList(this.state.room_list[item].id)
}}
/>
{this.state.room_list.map((item, i) => )}
{
this.setState({
selected_type: 'water'
},() => {
this.onTakeCamera()
})
}}>
{t('save_water_meter')}
{
this.setState({
selected_type: 'pea'
},() => {
this.onTakeCamera()
})
}}>
{t('save_electric_meter')}
}
{t('no_water_electric_bill')}
}
/>
);
}
}
const styles = StyleSheet.create({
viewBtn:{
flex:1,
flexDirection:'row',
height: 50,
justifyContent:'center',
alignItems:'center',
borderRadius:5
},
textBtn:{
color:'white',
fontSize:14,
marginLeft:10,
},
cardText:{
marginHorizontal: 10,
color: 'white',
fontSize: 16
},
viewTextFlatlist:{
alignItems:'center',
flexDirection:'row'
},
textFliatlist:{
fontSize:12,
color:'#000000'
}
})