TransferShipmentContainer.js 2.38 KB

'use strict';

import React, { Component } from 'react';
import Immutable, {List, Record} from 'immutable';
import TransferShipment from '../components/TransferShipment/TransferShipment'

import {
    StyleSheet,
    View,
    Text,
    ListView,
    Dimensions,
    Platform,
} from 'react-native';

import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';

import {Map} from 'immutable';

import * as transferShipmentActions from '../reducers/transferShipment/transferShipmentActions';

const actions = [
    transferShipmentActions,
];


function mapStateToProps(state) {
    return {
        ...state
    }
};

function mapDispatchToProps(dispatch) {

    const creators = Map()
            .merge(...actions)
            .filter(value => typeof value === 'function')
            .toObject();

    return {
        actions: bindActionCreators(creators, dispatch),
        dispatch
    };
}

class TransferShipmentContainer extends Component {

	constructor(props) {
		super(props);
        this._goToStatsPage = this._goToStatsPage.bind(this);
        this._checkUp = this._checkUp.bind(this);
        this._setPurchaseNum = this._setPurchaseNum.bind(this);
        this._resetData = this._resetData.bind(this);

	}

	componentDidMount() {
        this.props.actions.getPurchaseList();
	}

    componentWillUnmount() {

    }

    _resetData(){
        this.props.actions.resetData();
        this.props.actions.getPurchaseList();
    }

    _goToStatsPage(type,params) {
        this.props.actions.goToStatsPage(type,params);
    }

    _checkUp(checked,sku) {
        this.props.actions.checkUp(checked,sku);
    }

    _setPurchaseNum(num,sku) {
        this.props.actions.setPurchaseNum(num,sku);
    }

	render() {
        let {transferShipment} = this.props;
        let {purchaseList} = transferShipment;

		return (
			<View style={styles.container}>
				<TransferShipment resource={purchaseList} setPurchaseNum={this._setPurchaseNum} checkUp={this._checkUp} goToStatsPage={this._goToStatsPage}/>
			</View>
		);
	}
}

let {width, height} = Dimensions.get('window');
let navbarHeight = (Platform.OS === 'android') ? 50 : 64;

let styles = StyleSheet.create({
    container: {
        top: navbarHeight,
        height: height - navbarHeight,
        paddingBottom: (Platform.OS === 'android') ? 24 : 0,
    },

});

export default connect(mapStateToProps, mapDispatchToProps)(TransferShipmentContainer);