Archived
Fetch default membership price from dusken
This uses apollo-client to connect and fetch from the graphql API
This commit is contained in:
1 parent
a0e976ee1f
commit
6511a4422f
5 files changed
+158
-13
No files matched your search
@@ -10,11 +10,17 @@
|
||||
"release-android": "cd android && fastlane beta"
|
||||
},
|
||||
"dependencies": {
|
||||
"apollo-cache-inmemory": "^1.1.0",
|
||||
"apollo-client": "^2.0.2",
|
||||
"apollo-link-http": "^1.1.0",
|
||||
"email-validator": "^1.1.1",
|
||||
"graphql": "^0.11.7",
|
||||
"graphql-tag": "^2.5.0",
|
||||
"moment": "^2.19.1",
|
||||
"native-base": "^2.3.3",
|
||||
"prop-types": "^15.5.10",
|
||||
"react": "16.0.0",
|
||||
"react-apollo": "^2.0.0",
|
||||
"react-native": "0.50.1",
|
||||
"react-native-confetti": "^0.0.6",
|
||||
"react-native-config": "^0.9.0",
|
||||
|
||||
+19
-5
@@ -1,24 +1,38 @@
|
||||
import Dusken from "./Dusken";
|
||||
import React, {Component} from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
import { createStore, applyMiddleware } from 'redux';
|
||||
import {Provider} from 'react-redux';
|
||||
import {applyMiddleware, createStore} from 'redux';
|
||||
import logger from 'redux-logger';
|
||||
import thunk from 'redux-thunk';
|
||||
import {persistStore, autoRehydrate} from 'redux-persist'
|
||||
import {autoRehydrate, persistStore} from 'redux-persist'
|
||||
import {AsyncStorage} from 'react-native'
|
||||
import Config from 'react-native-config';
|
||||
import {ApolloClient} from 'apollo-client';
|
||||
import {HttpLink} from 'apollo-link-http';
|
||||
import {InMemoryCache} from 'apollo-cache-inmemory';
|
||||
import {ApolloProvider} from "react-apollo";
|
||||
|
||||
import Dusken from "./Dusken";
|
||||
import duskenApp from "./reducers";
|
||||
|
||||
|
||||
let store = createStore(
|
||||
duskenApp,
|
||||
applyMiddleware(...[logger, thunk]),
|
||||
autoRehydrate()
|
||||
);
|
||||
|
||||
const apolloClient = new ApolloClient({
|
||||
link: new HttpLink({uri: `${Config.DUSKEN_API_URL}/api/graphql/`}),
|
||||
cache: new InMemoryCache()
|
||||
});
|
||||
|
||||
export default class App extends Component {
|
||||
render() {
|
||||
return (
|
||||
<Provider store={store}>
|
||||
<Dusken />
|
||||
<ApolloProvider client={apolloClient}>
|
||||
<Dusken />
|
||||
</ApolloProvider>
|
||||
</Provider>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, {Component} from 'react';
|
||||
import {Image, Platform, ScrollView, StyleSheet, Text, TouchableOpacity, View} from "react-native";
|
||||
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";
|
||||
|
||||
@@ -2,6 +2,8 @@ import React, {Component} from 'react';
|
||||
import {connect} from "react-redux";
|
||||
import stripe from 'tipsi-stripe'
|
||||
import Config from 'react-native-config';
|
||||
import { graphql } from 'react-apollo';
|
||||
import gql from 'graphql-tag';
|
||||
|
||||
import Proof from "./Proof";
|
||||
import {requestMembershipCharge} from "../../api";
|
||||
@@ -11,17 +13,23 @@ stripe.init({
|
||||
publishableKey: Config.STRIPE_PUBLISHABLE_KEY || '',
|
||||
});
|
||||
|
||||
class ProofContainer extends Component {
|
||||
price = 200; // TODO: fetch from backend
|
||||
|
||||
class ProofContainer extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
refreshing: false,
|
||||
}
|
||||
}
|
||||
|
||||
getPrice(membershipTypes) {
|
||||
if (!membershipTypes || membershipTypes.length !== 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return membershipTypes[0].price / 100;
|
||||
}
|
||||
|
||||
render() {
|
||||
return <Proof
|
||||
{...this.state}
|
||||
@@ -30,7 +38,7 @@ class ProofContainer extends Component {
|
||||
chargeError={this.props.chargeError}
|
||||
onChargePress={this.openStripe}
|
||||
onLogoutPress={this.props.onLogoutPress}
|
||||
membershipPrice={this.price}
|
||||
membershipPrice={this.getPrice(this.props.data.membershipTypes)}
|
||||
/>
|
||||
}
|
||||
|
||||
@@ -75,7 +83,20 @@ class ProofContainer extends Component {
|
||||
// }
|
||||
}
|
||||
|
||||
export default connect(
|
||||
const PROOF_QUERY = gql`{
|
||||
membershipTypes(isDefault: true) {
|
||||
id
|
||||
slug
|
||||
price
|
||||
expiryType
|
||||
duration
|
||||
isActive
|
||||
name
|
||||
isDefault
|
||||
}
|
||||
}`;
|
||||
|
||||
const proofContainerWithState = connect(
|
||||
(store) => ({
|
||||
userToken: store.userToken,
|
||||
isChargingMembership: store.isChargingMembership,
|
||||
@@ -83,3 +104,5 @@ export default connect(
|
||||
}),
|
||||
{requestMembershipCharge}
|
||||
)(ProofContainer);
|
||||
|
||||
export default graphql(PROOF_QUERY)(proofContainerWithState);
|
||||
@@ -2,6 +2,14 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@types/async@2.0.45":
|
||||
version "2.0.45"
|
||||
resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.45.tgz#0cfe971d7ed5542695740338e0455c91078a0e83"
|
||||
|
||||
"@types/zen-observable@^0.5.3":
|
||||
version "0.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.5.3.tgz#91b728599544efbb7386d8b6633693a3c2e7ade5"
|
||||
|
||||
abab@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
|
||||
@@ -99,6 +107,57 @@ anymatch@^1.3.0:
|
||||
micromatch "^2.1.5"
|
||||
normalize-path "^2.0.0"
|
||||
|
||||
apollo-cache-inmemory@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.1.0.tgz#8b35f21da142419f0d68b6fff908f8ed4370ac8d"
|
||||
dependencies:
|
||||
apollo-cache "^1.0.0"
|
||||
apollo-utilities "^1.0.0"
|
||||
graphql-anywhere "^4.0.0"
|
||||
|
||||
apollo-cache@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.0.0.tgz#8579cf70073410b3594164a21c5afb847a8eed1f"
|
||||
dependencies:
|
||||
apollo-utilities "^1.0.0"
|
||||
|
||||
apollo-client@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.0.2.tgz#f2b01898c404c867fc2bd8edf7c3ccded2b96fc6"
|
||||
dependencies:
|
||||
"@types/zen-observable" "^0.5.3"
|
||||
apollo-cache "^1.0.0"
|
||||
apollo-link "1.0.0"
|
||||
apollo-link-dedup "1.0.0"
|
||||
apollo-utilities "^1.0.0"
|
||||
symbol-observable "^1.0.2"
|
||||
zen-observable "^0.6.0"
|
||||
optionalDependencies:
|
||||
"@types/async" "2.0.45"
|
||||
|
||||
apollo-link-dedup@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-dedup/-/apollo-link-dedup-1.0.0.tgz#f0134ac495cc42e7e43dfafe7126645baa1e03bc"
|
||||
|
||||
apollo-link-http@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.1.0.tgz#a85cc43d9a5286bb54ac32213f7a16bef3554ae4"
|
||||
|
||||
apollo-link@1.0.0, apollo-link@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.0.0.tgz#3d334285789c217f95712ebce434d56ce7f3e991"
|
||||
dependencies:
|
||||
apollo-utilities "^0.2.0-beta.0"
|
||||
zen-observable "^0.6.0"
|
||||
|
||||
apollo-utilities@^0.2.0-beta.0:
|
||||
version "0.2.0-rc.3"
|
||||
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-0.2.0-rc.3.tgz#7bd93be0f587f20c5b46e21880272e305759fdc2"
|
||||
|
||||
apollo-utilities@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.1.tgz#34b4df0bd6ed71d0afaa7c62489173dca5d07e92"
|
||||
|
||||
append-transform@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
|
||||
@@ -1798,6 +1857,22 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6,
|
||||
version "4.1.11"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||
|
||||
graphql-anywhere@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/graphql-anywhere/-/graphql-anywhere-4.0.0.tgz#4cf7ae7ed93aabeb95d329caa08c3867ddaef45e"
|
||||
dependencies:
|
||||
apollo-utilities "^1.0.0"
|
||||
|
||||
graphql-tag@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.5.0.tgz#b43bfd8b5babcd2c205ad680c03e98b238934e0f"
|
||||
|
||||
graphql@^0.11.7:
|
||||
version "0.11.7"
|
||||
resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.11.7.tgz#e5abaa9cb7b7cccb84e9f0836bf4370d268750c6"
|
||||
dependencies:
|
||||
iterall "1.1.3"
|
||||
|
||||
growly@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
|
||||
@@ -2027,7 +2102,7 @@ inquirer@^3.0.6, inquirer@^3.3.0:
|
||||
strip-ansi "^4.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
invariant@^2.0.0, invariant@^2.2.2:
|
||||
invariant@^2.0.0, invariant@^2.2.1, invariant@^2.2.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
|
||||
dependencies:
|
||||
@@ -2229,6 +2304,10 @@ istanbul-reports@^1.1.2:
|
||||
dependencies:
|
||||
handlebars "^4.0.3"
|
||||
|
||||
iterall@1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9"
|
||||
|
||||
jest-changed-files@^21.2.0:
|
||||
version "21.2.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-21.2.0.tgz#5dbeecad42f5d88b482334902ce1cba6d9798d29"
|
||||
@@ -2665,6 +2744,10 @@ lodash.escape@^3.0.0:
|
||||
dependencies:
|
||||
lodash._root "^3.0.0"
|
||||
|
||||
lodash.flowright@^3.5.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.flowright/-/lodash.flowright-3.5.0.tgz#2b5fff399716d7e7dc5724fe9349f67065184d67"
|
||||
|
||||
lodash.isarguments@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
|
||||
@@ -2693,6 +2776,10 @@ lodash.padstart@^4.1.0:
|
||||
version "4.6.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
|
||||
|
||||
lodash.pick@^4.4.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
|
||||
|
||||
lodash.restparam@^3.0.0:
|
||||
version "3.6.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
|
||||
@@ -3438,6 +3525,17 @@ rc@^1.1.7:
|
||||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
react-apollo@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/react-apollo/-/react-apollo-2.0.0.tgz#c9cbda2956585d422800f1686d870258637170f8"
|
||||
dependencies:
|
||||
apollo-link "^1.0.0"
|
||||
hoist-non-react-statics "^2.2.0"
|
||||
invariant "^2.2.1"
|
||||
lodash.flowright "^3.5.0"
|
||||
lodash.pick "^4.4.0"
|
||||
prop-types "^15.5.8"
|
||||
|
||||
react-clone-referenced-element@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.0.1.tgz#2bba8c69404c5e4a944398600bcc4c941f860682"
|
||||
@@ -4226,7 +4324,7 @@ supports-color@^4.0.0:
|
||||
dependencies:
|
||||
has-flag "^2.0.0"
|
||||
|
||||
symbol-observable@^1.0.3:
|
||||
symbol-observable@^1.0.2, symbol-observable@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
|
||||
|
||||
@@ -4701,3 +4799,7 @@ yargs@~3.10.0:
|
||||
cliui "^2.1.0"
|
||||
decamelize "^1.0.0"
|
||||
window-size "0.1.0"
|
||||
|
||||
zen-observable@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.6.0.tgz#8a6157ed15348d185d948cfc4a59d90a2c0f70ee"
|
||||
Reference in new issue
Block a user