GroupPurchase.js 2.77 KB
'use strict';

import React from 'react';
import {AppRegistry} from 'react-native';
import {Provider} from 'react-redux';
import configureStore from './store/configureStore';
import appInitialState from './reducers/app/appInitialState';
import groupPurchaseInitialState from './reducers/groupPurchase/groupPurchaseInitialState';
import GroupPurchaseContainer from './containers/GroupPurchaseContainer';
import {setHost, setPlatform, setServiceHost, getUid, getUnionType} from './reducers/app/appActions';
import {setActivityId, setGroupListParams} from './reducers/groupPurchase/groupPurchaseActions';
import createReactClass from 'create-react-class';
import GroupPurchaseDetailContainer from './containers/GroupPurchaseDetailContainer';
import {setDetailActivityId,setGroupNo} from './reducers/groupPurchaseDetail/groupPurchaseDetailActions';
import groupPurchaseDetailInitialState from './reducers/groupPurchaseDetail/groupPurchaseDetailInitialState';

function getInitialState() {
    const _initState = {
        app: (new appInitialState()),
        groupPurchase: (new groupPurchaseInitialState()),
        groupPurchaseDetail: (new groupPurchaseDetailInitialState()),
    };
    return _initState;
}


export default function native(platform) {

    let YH_GroupPurchase = createReactClass({

        render() {
            const store = configureStore(getInitialState());

            store.dispatch(setPlatform(platform));
            store.dispatch(setHost(this.props.host));
            store.dispatch(setServiceHost(this.props.serviceHost));
            // 将activityId的判断逻辑从原生移至RN处理
            let activityId = this.props.activityId;
            if(!activityId && this.props.template_id){
                activityId = this.props.template_id
            }
            store.dispatch(setActivityId(activityId));
            store.dispatch(setGroupNo(this.props.groupNo));
            store.dispatch(setDetailActivityId(activityId));
            store.dispatch(getUid());
            store.dispatch(getUnionType());
            store.dispatch(setGroupListParams(this.props))

            let type = this.props.type;
            if (type === 'List') {
                return (
                    <Provider store={store}>
                        <GroupPurchaseContainer/>
                    </Provider>
                );
            } else if (type === 'detail') {
                return (
                    <Provider store={store}>
                        <GroupPurchaseDetailContainer
                            FP_NAME={this.props.FP_NAME}
                            FP_PARAM={this.props.FP_PARAM}
                        />
                    </Provider>
                );
            }
        }
    });

    AppRegistry.registerComponent('YH_GroupPurchase', () => YH_GroupPurchase);
}