App.js 1.77 KB
'use strict';
/*
 * ## Imports
 *  
 * Imports from redux
 */
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';

/**
 * Immutable Map
 */
import {Map} from 'immutable';

/**
 * Project actions
 */
import * as guideActions from '../reducers/guide/guideActions';
import * as userActions from '../reducers/user/userActions';

/**
 * The components we need from ReactNative
 */
import React,
{ 	
    StatusBar,
    StyleSheet,
    View,
    Text,
    Component,
}
from 'react-native';

/**
 * ## Actions
 * 3 of our actions will be available as ```actions```
 */
const actions = [
    guideActions,
    userActions,
];

/**
 *  Save that state
 */
function mapStateToProps(state) {
    return {
        ...state
    };
};

/**
 * Bind all the functions from the ```actions``` and bind them with
 * ```dispatch```
 */
function mapDispatchToProps(dispatch) {

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

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


let styles = StyleSheet.create({
    container: {
        borderTopWidth: 2,
        borderBottomWidth:2,
        marginTop: 80,
        padding: 10
    },
    summary: {
        fontFamily: 'BodoniSvtyTwoITCTT-Book',
        fontSize: 18,
        fontWeight: 'bold'
    }
});

/**
 * ## App class
 */
class App extends Component {
    
    componentDidMount() {
        this.props.actions.getDisplayState();

    }

    render() {
        return (
            <StatusBar
                hidden={false} 
                barStyle={'light-content'}
            />
        );
    }
}

/**
 * Connect the properties
 */
export default connect(mapStateToProps, mapDispatchToProps)(App);