diff --git a/src/modules/membership/Membership.js b/src/modules/membership/Membership.js index a24cf2c..dba79e2 100644 --- a/src/modules/membership/Membership.js +++ b/src/modules/membership/Membership.js @@ -1,7 +1,10 @@ import React, {Component} from 'react'; -import {ScrollView, Text, View, Linking, StyleSheet, Platform} from "react-native"; -import {Button, Text as NBText} from "native-base"; +import {ScrollView, Text, View, StyleSheet} from "react-native"; +import {Button, Text as NBText, Spinner} from "native-base"; + import theme from "../../theme"; + + export default class Membership extends Component { render() { if (this.props.isFetchingUserData) { diff --git a/src/modules/membership/Proof.js b/src/modules/membership/Proof.js index edf4e1b..b3731a0 100644 --- a/src/modules/membership/Proof.js +++ b/src/modules/membership/Proof.js @@ -2,6 +2,7 @@ import React, {Component} from 'react'; import {Image, ScrollView, StyleSheet, Text, TouchableOpacity, View} from "react-native"; import {Button, Text as NBText, Spinner} from 'native-base'; import Confetti from 'react-native-confetti'; + import theme from "../../theme"; export default class Proof extends Component { @@ -82,6 +83,7 @@ export default class Proof extends Component { if (this.props.user.is_member) { return; } + return ( {this.props.isChargingMembership && } @@ -101,7 +103,7 @@ export default class Proof extends Component { confetti() { if (this.props.user.is_member) { - // FIXME: allmost infinite confetti. Are the animations paused when not visible, if not power hog? + // Confetti!!!! return this._confettiView = node} confettiCount={Number.MAX_SAFE_INTEGER} /> } } @@ -122,6 +124,13 @@ export default class Proof extends Component { ) } + chargeError() { + if (!this.props.chargeError) { + return; + } + + return {this.props.chargeError} + } render() { return ( @@ -132,6 +141,7 @@ export default class Proof extends Component { {this.membershipName()} {this.logo()} {this.membershipStatus()} + {this.chargeError()} {this.purchaseButton()} {this.membershipValidTo()} @@ -221,5 +231,10 @@ const styles = StyleSheet.create({ textAlign: 'center', paddingTop: 10, paddingBottom: 8 + }, + errorMessage: { + paddingTop: 10, + textAlign: 'center', + color: theme.colors.danger } }); \ No newline at end of file diff --git a/src/modules/membership/ProofContainer.js b/src/modules/membership/ProofContainer.js index 71f092a..b724822 100644 --- a/src/modules/membership/ProofContainer.js +++ b/src/modules/membership/ProofContainer.js @@ -36,7 +36,7 @@ class ProofContainer extends Component { user={this.props.user} isChargingMembership={this.props.isChargingMembership} isLoadingMembershipType={this.props.data.loading} - chargeError={this.props.chargeError} + chargeError={this.props.chargeError ? 'Kunne ikke belaste bankkortet, prøv igjen...' : ''} onChargePress={this.openStripe} onLogoutPress={this.props.onLogoutPress} membershipPrice={this.getPrice(this.props.data.membershipTypes)} diff --git a/src/modules/register/UserRegister.js b/src/modules/register/UserRegister.js index 315b1e6..75d8c71 100644 --- a/src/modules/register/UserRegister.js +++ b/src/modules/register/UserRegister.js @@ -1,8 +1,8 @@ import React, {Component} from 'react'; import {Container, Header, Content, Form, Item, Input, Label, Spinner, Button, Text, Icon, Toast} from 'native-base'; -import {Platform, StyleSheet, View} from "react-native"; +import {StyleSheet, View} from "react-native"; import EmailValidator from 'email-validator'; -import platform from "native-base/src/theme/variables/platform"; + import theme from "../../theme"; export default class UserRegister extends Component { @@ -248,7 +248,7 @@ const styles = StyleSheet.create({ }, errorMessage: { textAlign: 'center', - color: platform.btnDangerBg, + color: theme.colors.danger, fontSize: 14, }, card: theme.card, diff --git a/src/navigation.js b/src/navigation.js index a48bc1d..c36adf8 100644 --- a/src/navigation.js +++ b/src/navigation.js @@ -9,8 +9,8 @@ import MembershipScreen from "./screens/MembershipScreen"; import UserRegisterScreen from "./screens/UserRegisterScreen"; const tabBarRoutes = { - Membership: { screen: MembershipScreen }, EventList: { screen: EventListScreen }, + Membership: { screen: MembershipScreen }, About: { screen: AboutScreen }, }; diff --git a/src/theme.js b/src/theme.js index 729db2a..4b3c323 100644 --- a/src/theme.js +++ b/src/theme.js @@ -1,6 +1,9 @@ import { Platform } from "react-native"; +import platform from "native-base/src/theme/variables/platform"; -const colors = {}; +const colors = { + danger: platform.btnDangerBg +}; const card = { ...Platform.select({