diff --git a/package-lock.json b/package-lock.json index 4debc06..ab72765 100644 --- a/package-lock.json +++ b/package-lock.json @@ -793,6 +793,15 @@ "babel-template": "6.26.0" } }, + "babel-plugin-transform-define": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-define/-/babel-plugin-transform-define-1.3.0.tgz", + "integrity": "sha1-lMX5RZyBDHOMx8UMvUSjGCnW8xk=", + "requires": { + "lodash": "4.17.4", + "traverse": "0.6.6" + } + }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", @@ -1601,6 +1610,11 @@ "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", "dev": true }, + "clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -2093,9 +2107,9 @@ "integrity": "sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s=" }, "deep-diff": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.4.tgz", - "integrity": "sha1-qsXDmVIjar5fA3ojSQYLoBsArkg=", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", + "integrity": "sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ=", "dev": true }, "deep-is": { @@ -4132,8 +4146,7 @@ "hoist-non-react-statics": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", - "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=", - "dev": true + "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" }, "home-dir": { "version": "1.0.0", @@ -5639,8 +5652,7 @@ "lodash-es": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", - "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=", - "dev": true + "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=" }, "lodash._basecopy": { "version": "3.0.1", @@ -5705,6 +5717,11 @@ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -6167,6 +6184,19 @@ "mkdirp": "0.5.1" } }, + "mobx": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-3.4.1.tgz", + "integrity": "sha1-N6vl7ogtQBgo2fJsbBovR2FLu+8=" + }, + "mobx-react": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-4.3.5.tgz", + "integrity": "sha1-doU/Ly70pvlgw3S82fAeh1kpwEw=", + "requires": { + "hoist-non-react-statics": "2.3.1" + } + }, "moment": { "version": "2.19.2", "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.2.tgz", @@ -6458,6 +6488,84 @@ "mimic-fn": "1.1.0" } }, + "opencollective": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", + "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=", + "requires": { + "babel-polyfill": "6.23.0", + "chalk": "1.1.3", + "inquirer": "3.0.6", + "minimist": "1.2.0", + "node-fetch": "1.6.3", + "opn": "4.0.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" + }, + "babel-polyfill": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", + "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "regenerator-runtime": "0.10.5" + } + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + }, + "inquirer": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", + "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", + "requires": { + "ansi-escapes": "1.4.0", + "chalk": "1.1.3", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.1.0", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx": "4.1.0", + "string-width": "2.1.1", + "strip-ansi": "3.0.1", + "through": "2.3.8" + } + }, + "node-fetch": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", + "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + } + } + }, "opn": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/opn/-/opn-3.0.3.tgz", @@ -7317,6 +7425,27 @@ "resolved": "https://registry.npmjs.org/react-native-branch/-/react-native-branch-2.0.0-beta.3.tgz", "integrity": "sha1-IWevhrvJ+WS9Rb1fN2hOW1SWXjI=" }, + "react-native-dismiss-keyboard": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/react-native-dismiss-keyboard/-/react-native-dismiss-keyboard-1.0.0.tgz", + "integrity": "sha1-MohiQrPyMX4SHzrrmwpYXiuHm0k=" + }, + "react-native-drawer-layout": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/react-native-drawer-layout/-/react-native-drawer-layout-1.3.2.tgz", + "integrity": "sha512-fjO0scqbJUfNu2wuEpvywL7DYLXuCXJ2W/zYhWz986rdLytidbys1QGVvkaszHrb4Y7OqO96mTkgpOcP8KWevw==", + "requires": { + "react-native-dismiss-keyboard": "1.0.0" + } + }, + "react-native-drawer-layout-polyfill": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/react-native-drawer-layout-polyfill/-/react-native-drawer-layout-polyfill-1.3.2.tgz", + "integrity": "sha512-XzPhfLDJrYHru+e8+dFwhf0FtTeAp7JXPpFYezYV6P1nTeA1Tia/kDpFT+O2DWTrBKBEI8FGhZnThrroZmHIxg==", + "requires": { + "react-native-drawer-layout": "1.3.2" + } + }, "react-native-gesture-handler": { "version": "1.0.0-alpha.28", "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.0.0-alpha.28.tgz", @@ -7330,6 +7459,27 @@ "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-0.17.0.tgz", "integrity": "sha512-J/PoJGIaXODpc9MwMeB5irkj3kd9BVxBUO7OOhQIcWlSbWoHIae1iDAAA28L3CYZN/C3ZQSH1M2RaQbVwgx0UQ==" }, + "react-native-router-flux": { + "version": "4.0.0-beta.24", + "resolved": "https://registry.npmjs.org/react-native-router-flux/-/react-native-router-flux-4.0.0-beta.24.tgz", + "integrity": "sha512-JOkNawx2o9cavr4eLV160fcDLPCzpDC0uagYUW84TuSki6oUYlj265f4RXahDWbAAFKW6tGWIxmZnhGa2AYBqQ==", + "requires": { + "lodash.isequal": "4.5.0", + "mobx": "3.4.1", + "mobx-react": "4.3.5", + "opencollective": "1.0.3", + "path-to-regexp": "2.1.0", + "prop-types": "15.6.0", + "react-navigation": "1.0.0-beta.21" + }, + "dependencies": { + "path-to-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.1.0.tgz", + "integrity": "sha512-dZY7QPCPp5r9cnNuQ955mOv4ZFVDXY/yvqeV7Y1W2PJA3PEFcuow9xKFfJxbBj1pIjOAP+M2B4/7xubmykLrXw==" + } + } + }, "react-native-safe-module": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-native-safe-module/-/react-native-safe-module-1.2.0.tgz", @@ -7421,6 +7571,14 @@ "lodash": "4.17.4" } }, + "react-native-tab-view": { + "version": "0.0.70", + "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.70.tgz", + "integrity": "sha512-VOTZs2UCamYrTyBtcxpn4Ko9RkWrq6rZGOY7AagHF/gcCUQBMSWADoplsBopSc5vXnHHeCSR458BkceEuSEaQA==", + "requires": { + "prop-types": "15.6.0" + } + }, "react-native-vector-icons": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-4.4.2.tgz", @@ -7431,6 +7589,30 @@ "yargs": "8.0.2" } }, + "react-navigation": { + "version": "1.0.0-beta.21", + "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-1.0.0-beta.21.tgz", + "integrity": "sha512-bNAiNBtxrumZQmIj6uH2l1jHIkH8mILoGse5BMHOeFWACADl8LnbE91mzAkJ2EbAzAQ5LNpkSjGSIGxbvfsRCw==", + "requires": { + "babel-plugin-transform-define": "1.3.0", + "clamp": "1.0.1", + "hoist-non-react-statics": "2.3.1", + "path-to-regexp": "1.7.0", + "prop-types": "15.6.0", + "react-native-drawer-layout-polyfill": "1.3.2", + "react-native-tab-view": "0.0.70" + }, + "dependencies": { + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "requires": { + "isarray": "0.0.1" + } + } + } + }, "react-proxy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz", @@ -7444,7 +7626,6 @@ "version": "5.0.6", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz", "integrity": "sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw==", - "dev": true, "requires": { "hoist-non-react-statics": "2.3.1", "invariant": "2.2.2", @@ -7530,7 +7711,6 @@ "version": "3.7.2", "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "dev": true, "requires": { "lodash": "4.17.4", "lodash-es": "4.17.4", @@ -7539,14 +7719,24 @@ } }, "redux-logger": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.10.2.tgz", - "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", + "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", "dev": true, "requires": { - "deep-diff": "0.3.4" + "deep-diff": "0.3.8" } }, + "redux-promise-middleware": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/redux-promise-middleware/-/redux-promise-middleware-5.0.0.tgz", + "integrity": "sha512-+4YBHLHDH1j014iJVfF0qfsdlbKPRUGuV0rdG26gj6WTFk8O5e1sxiQ6o03R63lT9xVBM7koP0mcqvdVNTtH0g==" + }, + "redux-thunk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.2.0.tgz", + "integrity": "sha1-5hWhbha0ehmlFXZhM9Hj6Zt4UuU=" + }, "regenerate": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", @@ -7776,6 +7966,11 @@ "is-promise": "2.1.0" } }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -8355,8 +8550,7 @@ "symbol-observable": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=", - "dev": true + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" }, "symbol-tree": { "version": "3.2.2", @@ -8651,6 +8845,11 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", "dev": true }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" + }, "tree-kill": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", @@ -9176,6 +9375,12 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, + "deep-diff": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.4.tgz", + "integrity": "sha1-qsXDmVIjar5fA3ojSQYLoBsArkg=", + "dev": true + }, "depd": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", @@ -9240,6 +9445,15 @@ "unpipe": "1.0.0" } }, + "redux-logger": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.10.2.tgz", + "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=", + "dev": true, + "requires": { + "deep-diff": "0.3.4" + } + }, "xmlbuilder": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", diff --git a/package.json b/package.json index 5107a3c..4e44afd 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "devDependencies": { "jest-expo": "^22.0.0", "react-native-scripts": "1.7.0", - "react-test-renderer": "16.0.0-beta.5" + "react-test-renderer": "16.0.0-beta.5", + "redux-logger": "^3.0.6" }, "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js", "scripts": { @@ -22,8 +23,10 @@ "expo": "^22.0.2", "react": "16.0.0-beta.5", "react-native": "^0.49.5", + "react-native-router-flux": "^4.0.0-beta.24", "react-redux": "^5.0.6", "redux": "^3.7.2", - "redux-promise-middleware": "^5.0.0" + "redux-promise-middleware": "^5.0.0", + "redux-thunk": "^2.2.0" } } diff --git a/src/containers/App/index.js b/src/containers/App/index.js index 43cf6cf..f7e26bf 100644 --- a/src/containers/App/index.js +++ b/src/containers/App/index.js @@ -1,8 +1,16 @@ import React from 'react' +import {Scene, Router} from 'react-native-router-flux' + import Finder from '../Finder' +import Profile from '../Profile' const App = () => ( - + + + + + + ) export default App diff --git a/src/containers/Finder/actions.js b/src/containers/Finder/actions.js new file mode 100644 index 0000000..ecb05a5 --- /dev/null +++ b/src/containers/Finder/actions.js @@ -0,0 +1,19 @@ +import { + REQUESTED_PROFILE, + RECEIVED_PROFILE, + FAILED_PROFILE +} from './constants' + +export const requestProfile = () => ({ + type: REQUESTED_PROFILE, +}) + +export const receiveProfile = (profile) => ({ + type: RECEIVED_PROFILE, + data: profile, +}) + +export const failProfile = () => ({ + type: FAILED_PROFILE, +}) + diff --git a/src/containers/Finder/actionsCreator.js b/src/containers/Finder/actionsCreator.js new file mode 100644 index 0000000..ff3d5c3 --- /dev/null +++ b/src/containers/Finder/actionsCreator.js @@ -0,0 +1,12 @@ +import { requestProfile, receiveProfile, failProfile } from './actions' +import getGithubUser from './../../services/profileService' + + +const getProfile = (username) => (dispatch) => { + dispatch(requestProfile()) + getGithubUser(username) + .then((profile) => dispatch(receiveProfile(profile))) + .catch(() => dispatch(failProfile())) +} + +export default getProfile diff --git a/src/containers/Finder/constants.js b/src/containers/Finder/constants.js new file mode 100644 index 0000000..e8a0222 --- /dev/null +++ b/src/containers/Finder/constants.js @@ -0,0 +1,4 @@ +export const REQUESTED_PROFILE = 'app/Profile/REQUESTED_PROFILE' +export const RECEIVED_PROFILE = 'app/Profile/RECEIVED_PROFILE' +export const FAILED_PROFILE = 'app/Profile/FAILED_PROFILE' + diff --git a/src/containers/Finder/index.js b/src/containers/Finder/index.js index 684906d..f0edd42 100644 --- a/src/containers/Finder/index.js +++ b/src/containers/Finder/index.js @@ -1,24 +1,41 @@ import React from 'react' +import { connect } from 'react-redux' import { Text, View, TextInput, TouchableHighlight } from 'react-native' +import { Actions } from 'react-native-router-flux' +import getProfile from './actionsCreator' import styles from './styles' +const Finder = ({ getProfile }) => { + const showProfile = () => { + getProfile('nicsnet') + Actions.profile() + } + + return ( + + Search Github User + + + Search + + + ) +} -const Finder = () => ( - - Search Github User - - - Search - - -) +const mapDispatchToProps = ({ + getProfile +}) -export default Finder +export default connect(null, mapDispatchToProps)(Finder) diff --git a/src/containers/Finder/reducer.js b/src/containers/Finder/reducer.js new file mode 100644 index 0000000..2521dc2 --- /dev/null +++ b/src/containers/Finder/reducer.js @@ -0,0 +1,28 @@ +import { + REQUESTED_PROFILE, + RECEIVED_PROFILE, + FAILED_PROFILE +} from './constants' + +const initialState = { + data: null, + loading: false, + error: false, +} + +const profileReducer = (state = initialState, action) => { + switch (action.type) { + case REQUESTED_PROFILE: + return { ...state, ...{ loading: true, error: false, data: null } } + case RECEIVED_PROFILE: + return { ...state, ...{ loading: false, error: false, data: action.data } } + case FAILED_PROFILE: + return { ...state, ...{ loading: false, error: true, data: null } } + + default: + return state; + } +} + + +export default profileReducer diff --git a/src/containers/Profile/index.js b/src/containers/Profile/index.js new file mode 100644 index 0000000..9e403cd --- /dev/null +++ b/src/containers/Profile/index.js @@ -0,0 +1,38 @@ +import React from 'react' +import { connect } from 'react-redux' +import { + Text, + View, + ActivityIndicator, + Image, +} from 'react-native' + +import styles from './styles' + +const Profile = ({ data, loading }) => { + const profileView = !data && loading ? + : + + + return ( + + {profileView} + + ) +} + +const mapStateToProps = ({ profile: { data, loading } }) => ( + { + data, + loading + } +) + +export default connect(mapStateToProps)(Profile) diff --git a/src/containers/Profile/styles.js b/src/containers/Profile/styles.js new file mode 100644 index 0000000..4169b7b --- /dev/null +++ b/src/containers/Profile/styles.js @@ -0,0 +1,17 @@ +import { StyleSheet } from 'react-native' + +const styles = StyleSheet.create( + { + container: { + flex: 1, + marginTop: 10, + alignItems: 'center', + }, + image: { + height: 250, + width: 300, + } + } +) + +export default styles diff --git a/src/services/profileService.js b/src/services/profileService.js new file mode 100644 index 0000000..f3047dd --- /dev/null +++ b/src/services/profileService.js @@ -0,0 +1,5 @@ +const getGithubUser = (username) => + fetch(`https://api.github.com/users/${username}`).then((res) => res.json()) + +export default getGithubUser + diff --git a/src/store.js b/src/store.js index 6805068..69aa792 100644 --- a/src/store.js +++ b/src/store.js @@ -1,6 +1,17 @@ -import { createStore } from 'redux' +import { createStore, combineReducers, applyMiddleware } from 'redux' +import thunk from 'redux-thunk' +import { createLogger } from 'redux-logger' -const fakeReducer = () => {} -const store = createStore(fakeReducer) +import ProfileReducer from './containers/Finder/reducer' + +const reducers = combineReducers({ + profile: ProfileReducer +}) + +const middlewares = [thunk] +const logger = createLogger() +middlewares.push(logger) + +const store = createStore(reducers , applyMiddleware(...middlewares)) export default store diff --git a/yarn.lock b/yarn.lock index 714507e..ff57de0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -155,7 +155,7 @@ analytics-node@^2.1.0: superagent "^3.5.0" superagent-retry "^0.6.0" -ansi-escapes@^1.4.0: +ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -613,6 +613,13 @@ babel-plugin-transform-decorators-legacy@^1.3.4: babel-runtime "^6.2.0" babel-template "^6.3.0" +babel-plugin-transform-define@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-define/-/babel-plugin-transform-define-1.3.0.tgz#94c5f9459c810c738cc7c50cbd44a31829d6f319" + dependencies: + lodash "4.17.4" + traverse "0.6.6" + babel-plugin-transform-es2015-arrow-functions@^6.5.0, babel-plugin-transform-es2015-arrow-functions@^6.8.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" @@ -825,6 +832,14 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" +babel-polyfill@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + babel-polyfill@^6.23.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" @@ -1226,7 +1241,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1273,6 +1288,10 @@ ci-info@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" +clamp@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -1952,7 +1971,7 @@ extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" -external-editor@^2.0.4: +external-editor@^2.0.1, external-editor@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" dependencies: @@ -2500,7 +2519,7 @@ hoek@4.x.x: version "4.2.0" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" -hoist-non-react-statics@^2.2.1: +hoist-non-react-statics@^2.2.0, hoist-non-react-statics@^2.2.1, hoist-non-react-statics@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" @@ -2616,6 +2635,24 @@ ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +inquirer@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + inquirer@^3.0.1, inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" @@ -3415,6 +3452,10 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -3472,14 +3513,14 @@ lodash.zipobject@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/lodash.zipobject/-/lodash.zipobject-4.1.3.tgz#b399f5aba8ff62a746f6979bf20b214f964dbef8" +lodash@4.17.4, lodash@^4.0.0, lodash@^4.14.0, lodash@^4.14.1, lodash@^4.16.6, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + lodash@^3.5.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.14.1, lodash@^4.16.6, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - lodash@~4.5.1: version "4.5.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.5.1.tgz#80e8a074ca5f3893a6b1c10b2a636492d710c316" @@ -3729,7 +3770,7 @@ minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: +minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -3749,6 +3790,16 @@ mkdirp@*, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.1: dependencies: minimist "0.0.8" +mobx-react@^4.3.4: + version "4.3.5" + resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-4.3.5.tgz#76853f2f2ef4a6f960c374bcd9f01e875929c04c" + dependencies: + hoist-non-react-statics "^2.3.1" + +mobx@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-3.4.0.tgz#b97f98d973d1be26d185d3cfc78053dd4829ec95" + moment@2.x.x, moment@^2.10.6: version "2.19.2" resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.2.tgz#8a7f774c95a64550b4c7ebd496683908f9419dbe" @@ -3840,6 +3891,13 @@ next-tick@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" +node-fetch@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-fetch@^1.0.1, node-fetch@^1.3.3: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" @@ -3990,19 +4048,30 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/opn/-/opn-3.0.3.tgz#b6d99e7399f78d65c3baaffef1fb288e9b85243a" +opencollective@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" dependencies: - object-assign "^4.0.1" + babel-polyfill "6.23.0" + chalk "1.1.3" + inquirer "3.0.6" + minimist "1.2.0" + node-fetch "1.6.3" + opn "4.0.2" -opn@^4.0.2: +opn@4.0.2, opn@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" dependencies: object-assign "^4.0.1" pinkie-promise "^2.0.0" +opn@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/opn/-/opn-3.0.3.tgz#b6d99e7399f78d65c3baaffef1fb288e9b85243a" + dependencies: + object-assign "^4.0.1" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -4180,6 +4249,16 @@ path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-to-regexp@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.1.0.tgz#7e30f9f5b134bd6a28ffc2e3ef1e47075ac5259b" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -4313,7 +4392,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.8: +prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0: version "15.6.0" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" dependencies: @@ -4455,6 +4534,22 @@ react-native-branch@2.0.0-beta.3: version "2.0.0-beta.3" resolved "https://registry.yarnpkg.com/react-native-branch/-/react-native-branch-2.0.0-beta.3.tgz#2167af86bbc9f964bd45bd5f37684e5b54965e32" +react-native-dismiss-keyboard@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-native-dismiss-keyboard/-/react-native-dismiss-keyboard-1.0.0.tgz#32886242b3f2317e121f3aeb9b0a585e2b879b49" + +react-native-drawer-layout-polyfill@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/react-native-drawer-layout-polyfill/-/react-native-drawer-layout-polyfill-1.3.2.tgz#192c84d7a5a6b8a6d2be2c7daa5e4164518d0cc7" + dependencies: + react-native-drawer-layout "1.3.2" + +react-native-drawer-layout@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/react-native-drawer-layout/-/react-native-drawer-layout-1.3.2.tgz#b9740d7663a1dc4f88a61b9c6d93d2d948ea426e" + dependencies: + react-native-dismiss-keyboard "1.0.0" + react-native-gesture-handler@1.0.0-alpha.28: version "1.0.0-alpha.28" resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.0.0-alpha.28.tgz#198c776b7b7d299f9b03017f666a9829f996e30d" @@ -4465,6 +4560,18 @@ react-native-maps@0.17.0: version "0.17.0" resolved "https://registry.yarnpkg.com/react-native-maps/-/react-native-maps-0.17.0.tgz#d10fa94a049432c46b6ee03fe9db84c83da65c8b" +react-native-router-flux@^4.0.0-beta.24: + version "4.0.0-beta.24" + resolved "https://registry.yarnpkg.com/react-native-router-flux/-/react-native-router-flux-4.0.0-beta.24.tgz#93fb1976688bd6e34f73b2ae6764704efb7bcdd5" + dependencies: + lodash.isequal "^4.5.0" + mobx "^3.3.1" + mobx-react "^4.3.4" + opencollective "^1.0.3" + path-to-regexp "^2.1.0" + prop-types "^15.6.0" + react-navigation "^1.0.0-beta.19" + react-native-safe-module@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/react-native-safe-module/-/react-native-safe-module-1.2.0.tgz#a23824ca24edc2901913694a76646475113d570d" @@ -4498,6 +4605,12 @@ react-native-svg@5.4.2: color "^0.11.1" lodash "^4.16.6" +react-native-tab-view@^0.0.70: + version "0.0.70" + resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-0.0.70.tgz#1dd2ded32acd0cb6bfef38d26e53675db733b37b" + dependencies: + prop-types "^15.5.10" + react-native-vector-icons@4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-4.4.2.tgz#090f42ee0396c4cc4eae0ddaa518028ba8df40c7" @@ -4562,6 +4675,18 @@ react-native@^0.49.5: xmldoc "^0.4.0" yargs "^6.4.0" +react-navigation@^1.0.0-beta.19: + version "1.0.0-beta.21" + resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-1.0.0-beta.21.tgz#086c504ba84c966ef8db898baef6fa14ff45a06f" + dependencies: + babel-plugin-transform-define "^1.3.0" + clamp "^1.0.1" + hoist-non-react-statics "^2.2.0" + path-to-regexp "^1.7.0" + prop-types "^15.5.10" + react-native-drawer-layout-polyfill "^1.3.2" + react-native-tab-view "^0.0.70" + react-proxy@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a" @@ -4688,7 +4813,7 @@ regenerate@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" -regenerator-runtime@^0.10.5: +regenerator-runtime@^0.10.0, regenerator-runtime@^0.10.5: version "0.10.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" @@ -4906,6 +5031,10 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -5508,6 +5637,10 @@ tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" +traverse@0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + tree-kill@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36"