ilink-world/screens/drawer/DrawerListOption.js

104 lines
3.2 KiB
JavaScript
Raw Normal View History

2019-06-16 13:09:54 +00:00
import React, { Component,PureComponent } from 'react';
import PropTypes from 'prop-types';
import {StyleSheet,Text,View,FlatList} from 'react-native';
import {responsiveFontSize,responsiveWidth,responsiveHeight} from 'react-native-responsive-dimensions';
export class DrawerItem extends React.PureComponent{
render(){
return (
<View style={style.content}>
<Text style={style.title}>{this.props.title}</Text>
<Text style={style.description}>{this.props.description}</Text>
<View style={style.timeContent}>
<Text style={style.time}>{this.props.time}</Text>
</View>
<View style={style.bottomSeparator}/>
</View>
)
}
}
export class DrawerListItem extends PureComponent{
state = {selected: (new Map(): Map<string, boolean>)};
_keyExtractor = (item, index) => item.id;
_onPressItem = (id: string) => {
this.setState((state) => {
const selected = new Map(state.selected);
selected.set(id, !selected.get(id)); // toggle
return {selected};
});
};
_renderItem = ({item}) => (
<HistoryItem
title={item.title}
description={item.description}
time={item.time}
/>
);
render() {
return (
<FlatList
data={[{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
{title:'titre de la demande',description:'test description de la demande',time:'Hier'},
]}
extraData={this.state}
keyExtractor={this._keyExtractor}
renderItem={this._renderItem}
/>
);
}
}
const style=StyleSheet.create({
content:{
width:responsiveWidth(100),
height:responsiveHeight(12),
borderBottomColor: '#FFFFFF',
flex:1,
flexDirection: 'column',
paddingLeft: 10,
paddingTop: 10,
},
bottomSeparator:{
width:responsiveWidth(80),
height:1,
justifyContent:'center',
alignSelf: 'center',
backgroundColor:'#4f5b62',
},
title:{
color:'#000',
fontSize:responsiveFontSize(2.2)
},
description:{
fontSize:responsiveFontSize(1.8),
color:'#4f5b62',
},
timeContent:{
justifyContent:'flex-end',
flex:1,
alignItems: 'flex-end',
},
time:{
fontWeight: 'bold',
marginRight: 20,
marginBottom: 10,
color:'#263238',
},
});