import PropTypes from "prop-types"; import React from "react"; import GoogleLogin from "react-google-login"; import { connect } from "react-redux"; import { logIn } from "../../actions/auth"; class LoginContainer extends React.Component { static propTypes = { visible: PropTypes.bool.isRequired, onLogin: PropTypes.func.isRequired }; onAuthResponse(response) { this.props.onLogin({ email: response.getBasicProfile().getEmail(), givenName: response.getBasicProfile().getGivenName(), familyName: response.getBasicProfile().getFamilyName(), googleId: response.googleId, authToken: response.getAuthResponse().id_token, expiresAt: response.getAuthResponse().expires_at }); } onAuthFailure(error) { console.error(error); } render() { if (!this.props.visible) { return ; } return ( ( Login with Google )} /> ); } } const mapStateToProps = (state, ownProps) => { return { visible: ownProps.visible }; }; const mapDispatchToProps = dispatch => { return { onLogin: payload => dispatch(logIn(payload)) }; }; const Login = connect( mapStateToProps, mapDispatchToProps )(LoginContainer); export default Login;