notificationList.js 4.16 KB
/**
 * Created by Cassie on 2018/05/14
 * 我发布的通知
 */
import React, { Component } from 'react';
import {
    StyleSheet,
    View,
    Image,
    ScrollView,
    Text,
    TextInput,
    TouchableOpacity,
    InteractionManager,
    FlatList
} from 'react-native';
import {StackNavigator} from 'react-navigation';

import {width,height,zoomW,zoomH} from '../../utils/getSize';
import {xnToast} from '../../utils/utils';
const back = require('../../img/returnB.png');
const search = require('../../img/search.png');
const allDel = require('../../img/allDel.png');
const bread = require('../../img/bread.png');
const avatar = require('../../img/avatar.png');
const addTarget = require('../../img/addTarget.png');
const withdraw = require('../../img/withdraw.png');


export default class NotificationList extends Component {

    constructor(props) {
        super(props);
        this.state = {
            unconfirmedList:[],
            confirmedList:[],
        };
    }

    keyExtractor = (item,index) => index;
    renderItem({item,index}){
        return (
            <TouchableOpacity activeOpacity={0.8} style={styles.listItem}>
              <View style={styles.itemTop}>
                    <Image source={item.avatarUrl? {uri:item.avatarUrl+'?x-oss-process=image/resize,w_500'}:avatar} style={{width:(36/zoomW),height:(36/zoomH),borderRadius:(36/zoomH)}} resizeMode="contain" />
                    <Text numberOfLines={1} style={[styles.itemTitle,{width:'100%'}]}>{item.userName}</Text>
              </View>
            </TouchableOpacity>
        );
    }

    render(){
        return(
            <View style={styles.background}>
                {this.props.unconfirmedList &&  <FlatList onEndReachedThreshold={0.1}  refreshing={false} keyExtractor={this.keyExtractor}
                          data={this.state.unconfirmedList.length == 0 ? this.props.unconfirmedList:this.state.unconfirmedList} renderItem={this.renderItem} />}
                {this.props.confirmedList &&  <FlatList onEndReachedThreshold={0.1}  refreshing={false} keyExtractor={this.keyExtractor}
                           data={this.state.confirmedList.length == 0 ? this.props.confirmedList:this.state.confirmedList} renderItem={this.renderItem} />}
            </View>
        );
    }

}

const styles = StyleSheet.create({
   topIcon:{
     paddingLeft:(10/zoomW),
                paddingRight:(10/zoomW),
                height:'100%',
                display:'flex',
                alignItems:'center'
    },

    background:{
        flex:1,
        backgroundColor:'#ececf1',
        display:'flex',
        alignItems:'center'
    },
    itemBackground:{
        flex:1,
        backgroundColor:'#ffffff',
        display:'flex',
        alignItems:'center'
    },

    targetItem:{
        flex:1,
        display:'flex',
        flexDirection:'row',
        alignItems:'center',
        borderStyle:'solid',
        borderBottomColor:'#eee',
        paddingLeft:(15/zoomW),
        paddingRight:(15/zoomW),
        paddingTop:(10/zoomH),
        paddingBottom:(10/zoomH),
        backgroundColor:'#fff'
    },
    searchBox:{
        width:(345/zoomW),
        height:(34/zoomH),
        backgroundColor:'#eeeff3',
        borderRadius:3,
        display:'flex',
        flexDirection:'row',
        alignItems:'center',
        paddingLeft:(12.5/zoomW),
        paddingRight:(12.5/zoomW),
        marginBottom:(12.5/zoomW)
    },
    searchText:{
        flex:1,
        fontSize:14,
        color:'#000',
        padding:0,
        paddingLeft:(8/zoomW)
    },
    myPublish:{
        width :'100%',
        backgroundColor:'#ffffff',
        paddingLeft:(15/zoomW),
        paddingRight:(15/zoomW),
        paddingTop:(6.5/zoomW),
        paddingBottom:(19/zoomW),
        justifyContent:'space-between',
        flex :1,
        display:'flex',
        flexDirection: 'row'
    },

    listItem:{
        backgroundColor:'#fff',
        borderBottomColor:'#eee',
        borderBottomWidth:StyleSheet.hairlineWidth,
        padding:(15/zoomH),
    },
    itemTop:{
        width:(345/zoomW),
        display:'flex',
        flexDirection:'row',
        alignItems:'center'
    },
    itemTitle:{
        color:'#000',
        fontSize:18,
    },
})