refactored Redux Example (#819)

This commit is contained in:
Sami Jaber
2017-04-06 19:20:04 -04:00
committed by Eric Vicenti
parent 2b307c754a
commit 669da3eca5
8 changed files with 250 additions and 157 deletions

View File

@@ -0,0 +1,28 @@
import React, { PropTypes } from 'react';
import { connect } from 'react-redux';
import { Button } from 'react-native';
import { NavigationActions } from 'react-navigation';
const AuthButton = ({ logout, login, isLoggedIn }) => (
<Button
title={isLoggedIn ? 'Log Out' : 'Log In'}
onPress={isLoggedIn ? logout : login}
/>
);
AuthButton.propTypes = {
isLoggedIn: PropTypes.bool.isRequired,
logout: PropTypes.func.isRequired,
login: PropTypes.func.isRequired,
};
const mapStateToProps = state => ({
isLoggedIn: state.auth.isLoggedIn,
});
const mapDispatchToProps = dispatch => ({
logout: () => dispatch({ type: 'Logout' }),
login: () => dispatch(NavigationActions.navigate({ routeName: 'Login' })),
});
export default connect(mapStateToProps, mapDispatchToProps)(AuthButton);