diff --git a/src/modules/login/LoginContainer.js b/src/modules/login/LoginContainer.js index 0eb40fc..181d17a 100644 --- a/src/modules/login/LoginContainer.js +++ b/src/modules/login/LoginContainer.js @@ -4,39 +4,24 @@ import Login from "./Login"; import {requestLogin} from "../../api"; class LoginContainer extends Component { - constructor(state) { - super(state); - this.state = { - isAuthenticated: false, - isLoggingIn: false, - loginError: null, - } - } - componentWillReceiveProps(nextProps) { - if (this.state.isAuthenticated !== nextProps.isAuthenticated) { + if (this.props.isAuthenticated !== nextProps.isAuthenticated) { if (nextProps.isAuthenticated) { this.props.onLogin(); } } - if (this.state.isLoggingIn !== nextProps.isLoggingIn) { - this.setState({isLoggingIn: nextProps.isLoggingIn}) - } - if (this.state.loginError !== nextProps.loginError) { - this.setState({loginError: nextProps.loginError}) - } } render() { - return + return } } export default connect( - (state) => ({ - isAuthenticated: state.isAuthenticated, - isLoggingIn: state.isLoggingIn, - loginError: state.loginError, + (store) => ({ + isAuthenticated: store.isAuthenticated, + isLoggingIn: store.isLoggingIn, + loginError: store.loginError, }), {requestLogin} )(LoginContainer); diff --git a/src/modules/membership/Proof.js b/src/modules/membership/Proof.js index 16d2f3b..9be9c43 100644 --- a/src/modules/membership/Proof.js +++ b/src/modules/membership/Proof.js @@ -1,6 +1,6 @@ import React, {Component} from 'react'; import {Image, Platform, ScrollView, StyleSheet, Text, TouchableOpacity, View} from "react-native"; -import {Button, Text as NBText} from 'native-base'; +import {Button, Text as NBText, Spinner} from 'native-base'; import Confetti from 'react-native-confetti'; import theme from "../../theme"; @@ -71,7 +71,7 @@ export default class Proof extends Component { const statusText = this.props.user.is_volunteer ? 'Aktiv' : 'Medlem'; return ( - + {statusText} @@ -84,9 +84,11 @@ export default class Proof extends Component { } return ( + {this.props.isChargingMembership && } - - + + + {this.membershipName()} + {this.logo()} + {this.membershipStatus()} + {this.purchaseButton()} + {this.membershipValidTo()} + + + + + + ) }; @@ -150,6 +158,9 @@ export default class Proof extends Component { const styles = StyleSheet.create({ card: theme.card, + membershipStatus: { + marginVertical: 16, + }, nameText: { flex: 1, textAlign: 'center', @@ -171,7 +182,8 @@ const styles = StyleSheet.create({ backgroundColor: '#d9534f', flex: 1, marginHorizontal: -16, - padding: 16 + padding: 16, + marginVertical: 16, }, expiredText: { color: 'white', diff --git a/src/modules/membership/ProofContainer.js b/src/modules/membership/ProofContainer.js index f174c6c..bb67697 100644 --- a/src/modules/membership/ProofContainer.js +++ b/src/modules/membership/ProofContainer.js @@ -20,16 +20,12 @@ class ProofContainer extends Component { } } - componentWillReceiveProps(nextProps) { - if(this.state.user !== nextProps.user) { - this.setState({user: nextProps.user}) - } - } - render() { return @@ -51,10 +47,7 @@ class ProofContainer extends Component { {id: token.tokenId, email: this.props.user.email}, 'standard'); }, - (error) => { - // TODO: display error - console.log(error); - } + (error) => { /* FIXME: Happens only if card dialog is canceled? */ } ); }; @@ -80,8 +73,10 @@ class ProofContainer extends Component { } export default connect( - (state) => ({ - userToken: state.userToken + (store) => ({ + userToken: store.userToken, + isChargingMembership: store.isChargingMembership, + chargeError: store.chargeError }), {requestMembershipCharge} )(ProofContainer);