Commit b06b73d
Changed files (4)
app/domain/account.js
@@ -0,0 +1,7 @@
+import t from 'tcomb-form-native';
+//var t = require('tcomb-form-native');
+
+export default Account = t.struct({
+ username: t.String,
+ password: t.String
+});
app/screens/login-screen.js
@@ -1,6 +1,9 @@
import React, { Component } from 'react';
-import { View, Text, TouchableHighlight } from 'react-native';
-import Movies from '../components/movies'
+import { View, Text, TouchableHighlight, AsyncStorage } from 'react-native';
+import Movies from '../components/movies';
+import Account from '../domain/account'
+var t = require('tcomb-form-native');
+var Form = t.form.Form;
export default class LoginScreen extends Component {
static get defaultProps() {
@@ -10,6 +13,15 @@ export default class LoginScreen extends Component {
render() {
return (
<View>
+ <View>
+ <Text>Login</Text>
+ </View>
+ <View>
+ <Form ref="form" type={Account} options={{}} />
+ </View>
+ <TouchableHighlight onPress={this.onLogin.bind(this)}>
+ <Text>Login</Text>
+ </TouchableHighlight>
<Text>Hi! My name is {this.props.title}.</Text>
<TouchableHighlight onPress={this.onForward.bind(this)}>
<Text>Next</Text>
@@ -28,4 +40,30 @@ export default class LoginScreen extends Component {
onBack() {
this.props.navigator.pop();
}
+
+ onLogin() {
+ let value = this.refs.form.getValue();
+ let that = this;
+ if (value) {
+ fetch("http://localhost:3000/sessions/create", {
+ method: "POST",
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ username: value.username,
+ password: value.password,
+ })
+ })
+ .then((response) => response.json())
+ .then((json) => {
+ that.storeToken("authentication_token", json.token)
+ }).done();
+ }
+ }
+
+ storeToken(key, value) {
+ AsyncStorage.setItem(key, value);
+ }
}
package.json
@@ -8,7 +8,8 @@
},
"dependencies": {
"react": "15.3.2",
- "react-native": "0.37.0"
+ "react-native": "0.37.0",
+ "tcomb-form-native": "^0.6.1"
},
"jest": {
"preset": "jest-react-native"
yarn.lock
@@ -41,11 +41,17 @@ acorn-globals@^1.0.4:
dependencies:
acorn "^2.1.0"
+acorn-jsx@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+ dependencies:
+ acorn "^3.0.4"
+
acorn@^2.1.0, acorn@^2.4.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
-acorn@^3.1.0:
+acorn@^3.0.4, acorn@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
@@ -164,27 +170,27 @@ assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-ast-query@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/ast-query/-/ast-query-1.2.0.tgz#4b725e9f3922a5edc41dc669c87bbfbfd20171a2"
+ast-query@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ast-query/-/ast-query-2.0.0.tgz#3588e79ad8de07ce50df1e781cc2bda1fd69a453"
dependencies:
+ acorn-jsx "^3.0.1"
class-extend "^0.1.1"
- escodegen "^1.6.0"
- esprima "^2.0.0"
+ escodegen-wallaby "^1.6.7"
lodash "^4.6.1"
traverse "^0.6.6"
-ast-types@0.8.15:
- version "0.8.15"
- resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52"
+ast-types@0.9.2:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.2.tgz#2cc19979d15c655108bf565323b8e7ee38751f6b"
async@1.x, async@^1.4.0, async@^1.4.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
async@^2.0.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385"
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
dependencies:
lodash "^4.14.0"
@@ -909,8 +915,8 @@ bser@^1.0.2:
node-int64 "^0.4.0"
buffer-crc32@~0.2.3:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.6.tgz#612b318074fc6c4c30504b297247a1f91641253b"
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
buffer-to-vinyl@^1.0.0:
version "1.1.0"
@@ -1107,8 +1113,8 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
commoner@^0.10.1:
- version "0.10.4"
- resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.4.tgz#98f3333dd3ad399596bb2d384a783bb7213d68f8"
+ version "0.10.8"
+ resolved "https://registry.yarnpkg.com/commoner/-/commoner-0.10.8.tgz#34fc3672cd24393e8bb47e70caa0293811f4f2c5"
dependencies:
commander "^2.5.0"
detective "^4.3.1"
@@ -1118,7 +1124,7 @@ commoner@^0.10.1:
mkdirp "^0.5.0"
private "^0.1.6"
q "^1.1.2"
- recast "^0.10.0"
+ recast "^0.11.17"
compressible@~2.0.5:
version "2.0.9"
@@ -1324,8 +1330,8 @@ dargs@^4.0.0:
number-is-nan "^1.0.0"
dashdash@^1.12.0:
- version "1.14.0"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.0.tgz#29e486c5418bf0f356034a993d51686a33e84141"
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
dependencies:
assert-plus "^1.0.0"
@@ -1336,9 +1342,9 @@ dateformat@^1.0.11:
get-stdin "^4.0.1"
meow "^3.3.0"
-debug@^2.0.0, debug@^2.1.0, debug@^2.1.1, debug@^2.2.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.2.tgz#94cb466ef7d6d2c7e5245cdd6e4104f2d0d70d30"
+debug@2.3.3, debug@^2.0.0, debug@^2.1.0, debug@^2.1.1, debug@^2.2.0:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
dependencies:
ms "0.7.2"
@@ -1627,7 +1633,18 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-escodegen@1.8.x, escodegen@^1.6.0, escodegen@^1.6.1:
+escodegen-wallaby@^1.6.7:
+ version "1.6.7"
+ resolved "https://registry.yarnpkg.com/escodegen-wallaby/-/escodegen-wallaby-1.6.7.tgz#59d0e8b6dadad9523b3ef0da6473eb6399a7be4b"
+ dependencies:
+ esprima "^2.7.1"
+ estraverse "^1.9.1"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.2.0"
+
+escodegen@1.8.x, escodegen@^1.6.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
dependencies:
@@ -1642,11 +1659,7 @@ esprima-fb@^15001.1.0-dev-harmony-fb:
version "15001.1.0-dev-harmony-fb"
resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz#30a947303c6b8d5e955bee2b99b1d233206a6901"
-esprima-fb@~15001.1001.0-dev-harmony-fb:
- version "15001.1001.0-dev-harmony-fb"
- resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659"
-
-esprima@2.7.x, esprima@^2.0.0, esprima@^2.6.0, esprima@^2.7.1:
+esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
@@ -1654,6 +1667,10 @@ esprima@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9"
+esprima@~3.1.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.2.tgz#954b5d19321ca436092fa90f06d6798531fe8184"
+
estraverse@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
@@ -1739,7 +1756,7 @@ fast-levenshtein@~2.0.4:
fb-watchman@^1.8.0, fb-watchman@^1.9.0:
version "1.9.0"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.0.tgz#6f268f1f347a6b3c875d1e89da7e1ed79adfc0ec"
+ resolved "http://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.0.tgz#6f268f1f347a6b3c875d1e89da7e1ed79adfc0ec"
dependencies:
bser "^1.0.2"
@@ -1794,7 +1811,7 @@ filename-reserved-regex@^1.0.0:
filenamify@^1.0.1:
version "1.2.1"
- resolved "http://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5"
+ resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5"
dependencies:
filename-reserved-regex "^1.0.0"
strip-outer "^1.0.0"
@@ -2016,8 +2033,8 @@ global@^4.3.0:
process "~0.5.1"
globals@^9.0.0:
- version "9.13.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.13.0.tgz#d97706b61600d8dbe94708c367d3fdcf48470b8f"
+ version "9.14.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034"
globby@^4.0.0:
version "4.1.0"
@@ -2057,28 +2074,28 @@ got@^5.0.0, got@^5.2.0:
url-parse-lax "^1.0.0"
graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.10"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.10.tgz#f2d720c22092f743228775c75e3612632501f131"
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
"graceful-readlink@>= 1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
grouped-queue@^0.3.0:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.2.tgz#1005f70ece919eccbb37a318f84af99fd6c4eb5c"
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c"
dependencies:
- lodash "^3.10.1"
+ lodash "^4.17.2"
growly@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
gruntfile-editor@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/gruntfile-editor/-/gruntfile-editor-1.2.0.tgz#169cc7ff532f0b2eb900eec351f7a2bf668302d0"
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/gruntfile-editor/-/gruntfile-editor-1.2.1.tgz#366fc1f93cbf045813e1448aef1da9f18289d5eb"
dependencies:
- ast-query "^1.0.1"
+ ast-query "^2.0.0"
lodash "^4.6.1"
gulp-decompress@^1.2.0:
@@ -2238,10 +2255,14 @@ iconv-lite@0.4.11:
version "0.4.11"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.11.tgz#2ecb42fd294744922209a2e7c404dac8793d8ade"
-iconv-lite@0.4.13, iconv-lite@^0.4.13, iconv-lite@^0.4.5, iconv-lite@~0.4.13:
+iconv-lite@0.4.13:
version "0.4.13"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
+iconv-lite@^0.4.13, iconv-lite@^0.4.5, iconv-lite@~0.4.13:
+ version "0.4.15"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
+
image-size@^0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.3.5.tgz#83240eab2fb5b00b04aab8c74b0471e9cba7ad8c"
@@ -2430,7 +2451,7 @@ is-posix-bracket@^0.1.0:
is-primitive@^2.0.0:
version "2.0.0"
- resolved "http://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+ resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
is-property@^1.0.0:
version "1.0.2"
@@ -3108,7 +3129,7 @@ lodash@^3.1.0, lodash@^3.10.1, lodash@^3.2.0, lodash@^3.3.1, lodash@^3.5.0, loda
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1:
+lodash@^4.14.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1:
version "4.17.2"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42"
@@ -3227,10 +3248,10 @@ merge@^1.1.3:
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
method-override@~2.3.5:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/method-override/-/method-override-2.3.6.tgz#209261cc588d45d9d5a022ff20d7d5eb8e92179e"
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/method-override/-/method-override-2.3.7.tgz#8e1d47ac480fb0cd8777083f11c896901166b2e5"
dependencies:
- debug "~2.2.0"
+ debug "2.3.3"
methods "~1.1.2"
parseurl "~1.3.1"
vary "~1.1.0"
@@ -3265,13 +3286,13 @@ mime-db@~1.23.0:
version "1.23.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659"
-mime-types@2.1.11, mime-types@~2.1.11, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9:
+mime-types@2.1.11:
version "2.1.11"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c"
dependencies:
mime-db "~1.23.0"
-mime-types@^2.1.12:
+mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.6, mime-types@~2.1.7, mime-types@~2.1.9:
version "2.1.13"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88"
dependencies:
@@ -3333,8 +3354,8 @@ module-deps@^3.9.1:
xtend "^4.0.0"
moment@2.x.x:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.16.0.tgz#f38f2c97c9889b0ee18fc6cc392e1e443ad2da8e"
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.0.tgz#a4c292e02aac5ddefb29a6eed24f51938dd3b74f"
morgan@~1.6.1:
version "1.6.1"
@@ -3741,8 +3762,8 @@ random-bytes@~1.0.0:
resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
randomatic@^1.1.3:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b"
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
dependencies:
is-number "^2.0.2"
kind-of "^3.0.2"
@@ -3950,12 +3971,12 @@ rebound@^0.0.13:
version "0.0.13"
resolved "https://registry.yarnpkg.com/rebound/-/rebound-0.0.13.tgz#4a225254caf7da756797b19c5817bf7a7941fac1"
-recast@^0.10.0:
- version "0.10.43"
- resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f"
+recast@^0.11.17:
+ version "0.11.17"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.17.tgz#67e829df49ef8ea822381cc516d305411e60bad8"
dependencies:
- ast-types "0.8.15"
- esprima-fb "~15001.1001.0-dev-harmony-fb"
+ ast-types "0.9.2"
+ esprima "~3.1.0"
private "~0.1.5"
source-map "~0.5.0"
@@ -4444,6 +4465,22 @@ tar-stream@^1.1.1:
readable-stream "^2.0.0"
xtend "^4.0.0"
+tcomb-form-native@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/tcomb-form-native/-/tcomb-form-native-0.6.1.tgz#42d2b987b6c697acfcac57bbfa49c697a94d28ed"
+ dependencies:
+ tcomb-validation "^3.0.0"
+
+tcomb-validation@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/tcomb-validation/-/tcomb-validation-3.3.0.tgz#29ada8534203500e90b245eedd0e1a80f1909ba2"
+ dependencies:
+ tcomb "^3.0.0"
+
+tcomb@^3.0.0:
+ version "3.2.15"
+ resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.15.tgz#09e40f447976d1d9c07ff465b8377342a8fe67e1"
+
temp@0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
@@ -4583,11 +4620,11 @@ type-check@~0.3.2:
prelude-ls "~1.1.2"
type-is@~1.6.6:
- version "1.6.13"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.13.tgz#6e83ba7bc30cd33a7bb0b7fb00737a2085bf9d08"
+ version "1.6.14"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2"
dependencies:
media-typer "0.3.0"
- mime-types "~2.1.11"
+ mime-types "~2.1.13"
typedarray@~0.0.5:
version "0.0.6"
@@ -4812,8 +4849,8 @@ whatwg-fetch@>=0.10.0, whatwg-fetch@^1.0.0:
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz#ac3c9d39f320c6dce5339969d054ef43dd333319"
whatwg-url@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-3.0.0.tgz#b9033c50c7ce763e91d78777ce825a6d7f56dac5"
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-3.1.0.tgz#7bdcae490f921aef6451fb6739ec6bbd8e907bf6"
dependencies:
tr46 "~0.0.3"
webidl-conversions "^3.0.0"