import React, { Component,PureComponent } from 'react'; import PropTypes from 'prop-types'; import {StyleSheet,Text,View,FlatList,TouchableOpacity,SectionList,RefreshControl} from 'react-native'; import {responsiveFontSize,responsiveWidth,responsiveHeight} from 'react-native-responsive-dimensions'; import {convertDateToHumanText} from './../../utils/DateUtils'; import Icon from 'react-native-vector-icons/FontAwesome5'; var moment=require('moment-timezone') const momentJS=require('moment') import I18n from "react-native-i18n" import 'moment/locale/fr' import 'moment/locale/es-us' import 'moment/locale/en-au' import 'moment/locale/en-ca' import 'moment/locale/en-ie' import 'moment/locale/en-il' import 'moment/locale/en-nz' let route=require('./../../route.json'); var theme=require('./../../utils/theme.json'); export class HistoryItem extends React.Component{ constructor(props){ super(props); this.state=this.initState(); } initState(){ var textTitle=' Transaction '+this.props.selfData.id; var textDescription=I18n.t('PHONE')+' '+this.props.selfData.phone+" "+I18n.t('DEMAND_TEXT_FIRST_PART')+' '+(this.props.selfData.montant)+' '+I18n.t('TO_')+' '; textDescription+=this.props.selfData.reseau; var today=new Date(); var l=this.props.selfData.date_creation; let t=this.props.selfData.status; moment.locale(I18n.locale) var re= moment.tz(this.props.selfData.date_creation,'Etc/GMT+0').format(); re=moment(re) return { title:textTitle, description:textDescription, status:this.props.selfData.status==='1'?I18n.t('TREAT'):I18n.t('NO_TREAT'), time:re.fromNow(), navigator:this.props.navigator, type:t, colorstate:t==='1'?'green':'red' } }; render(){ return ( this.props.navigator.navigate(route.historyItemDetails, {item:this.props.selfData} )}> {this.state.title} {this.state.description} {this.state.status} {this.state.time} ) } } export class HistoryItemSectionned extends PureComponent{ _keyExtractor = (item, index) => item.id; _renderItem = ({item}) => ( ); constructor(props){ super(props); this.state=this.initState(); } render() { return ( ( this.onPressedHeader(type)} style={{ backgroundColor:theme.accent, justifyContent:'center', alignItems:'center', flexDirection:'row',flex:1,height:70,width:responsiveWidth(100)}}> {title} {size} demande(s) )} style={style.listStyle} extraData={this.state} keyExtractor={this._keyExtractor} renderItem={this._renderItem} /> ); } onPressedHeader(type){ if(type===0){ this.setState({istreatexpand:!this.state.istreatexpand,treat:this.state.istreatexpand?[]:this.state.conservetreat}) }else{ this.setState({isuntreatexpand:!this.state.isuntreatexpand,untreat:this.state.isuntreatexpand?[]:this.state.conserveuntreat}) } } initState(){ let data=this.props.list return { conservetreat: data.filter(item=>item.statut===I18n.t('TREAT')), treat: data.filter(item=>item.statut===I18n.t('TREAT')), istreatexpand:true, conserveuntreat: data.filter(item=>item.statut!==I18n.t('TREAT')), untreat: data.filter(item=>item.statut!==I18n.t('TREAT')), isuntreatexpand:true } } } export class HistoryListItem extends React.Component{ _keyExtractor = (item, index) => item.id; _onPressItem = (id: string) => { }; _renderItem = ({item}) => ( ); constructor(props){ super(props); this.state=this.initState(); } initState(){ return { refreshing:false, } } render() { return ( } /> ); } _onRefresh(){ this.setState({refreshing:true}) setTimeout(()=>{this.setState({refreshing:false})},5000); } } const style=StyleSheet.create({ content:{ width:responsiveWidth(100), borderBottomColor: '#FFFFFF', flex:1, flexDirection: 'column', paddingTop: 10, }, listStyle:{ backgroundColor:'white' }, bottomSeparator:{ width:responsiveWidth(100), height:5, justifyContent:'center', alignSelf: 'center', backgroundColor:'#EEE', }, title:{ color:'#000', paddingLeft: 10, fontSize:responsiveFontSize(2.2) }, description:{ fontSize:responsiveFontSize(1.8), color:'#4f5b62', paddingLeft: 10, }, timeContent:{ justifyContent:'space-between', flex:1, marginTop: 10, marginBottom: 5, flexDirection:'row', }, time:{ fontWeight: 'bold', marginRight: 20, marginBottom: 10, color:theme.accent, }, treat:{ }, });