mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-01-30 22:50:22 +08:00
31 lines
862 B
JavaScript
31 lines
862 B
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { connect } from 'react-redux';
|
|
import { Button } from 'react-native';
|
|
import { NavigationActions } from 'react-navigation';
|
|
|
|
const AuthButton = ({ logout, loginScreen, isLoggedIn }) => (
|
|
<Button
|
|
title={isLoggedIn ? 'Log Out' : 'Open Login Screen'}
|
|
onPress={isLoggedIn ? logout : loginScreen}
|
|
/>
|
|
);
|
|
|
|
AuthButton.propTypes = {
|
|
isLoggedIn: PropTypes.bool.isRequired,
|
|
logout: PropTypes.func.isRequired,
|
|
loginScreen: PropTypes.func.isRequired,
|
|
};
|
|
|
|
const mapStateToProps = state => ({
|
|
isLoggedIn: state.auth.isLoggedIn,
|
|
});
|
|
|
|
const mapDispatchToProps = dispatch => ({
|
|
logout: () => dispatch({ type: 'Logout' }),
|
|
loginScreen: () =>
|
|
dispatch(NavigationActions.navigate({ routeName: 'Login' })),
|
|
});
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(AuthButton);
|