diff --git a/flow-typed/npm/flow-bin_v0.x.x.js b/flow-typed/npm/flow-bin_v0.x.x.js index 8f2166f..c538e20 100644 --- a/flow-typed/npm/flow-bin_v0.x.x.js +++ b/flow-typed/npm/flow-bin_v0.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 819f4c19e7a4e832350a60a094454b81 -// flow-typed version: /flow-bin_v0.x.x/flow_>=v0.25.x +// flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583 +// flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x declare module "flow-bin" { declare module.exports: string; diff --git a/flow-typed/npm/jest_v18.x.x.js b/flow-typed/npm/jest_v18.x.x.js index 3ef45d9..7ca2b84 100644 --- a/flow-typed/npm/jest_v18.x.x.js +++ b/flow-typed/npm/jest_v18.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 056cdbb5be6e4bf527394e630b3f2133 -// flow-typed version: /jest_v18.x.x/flow_>=v0.33.x +// flow-typed signature: e49570b0f5e396c7206dda452bd6f004 +// flow-typed version: 1590d813f4/jest_v18.x.x/flow_>=v0.33.x type JestMockFn = { (...args: Array): any, diff --git a/flow-typed/npm/react-addons-test-utils_v15.x.x.js b/flow-typed/npm/react-addons-test-utils_v15.x.x.js index 2d2046d..b4d753d 100644 --- a/flow-typed/npm/react-addons-test-utils_v15.x.x.js +++ b/flow-typed/npm/react-addons-test-utils_v15.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: c351ab53c99d962dc5c0a3de10b3a1ca -// flow-typed version: /react-addons-test-utils_v15.x.x/flow_>=v0.23.x +// flow-typed signature: 323fcc1a3353d5f7a36c5f1edcd963ef +// flow-typed version: 41f45a7d8c/react-addons-test-utils_v15.x.x/flow_>=v0.23.x declare type ReactAddonTest$FunctionOrComponentClass = React$Component | Function; declare module 'react-addons-test-utils' { diff --git a/flow-typed/npm/react-redux_v5.x.x.js b/flow-typed/npm/react-redux_v5.x.x.js index f37dcb5..8be01f1 100644 --- a/flow-typed/npm/react-redux_v5.x.x.js +++ b/flow-typed/npm/react-redux_v5.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 1f898dcc0066d36209c80f823f960263 -// flow-typed version: /react-redux_v5.x.x/flow_>=v0.30.x +// flow-typed signature: 0ed284c5a2e97a9e3c0e87af3dedc09d +// flow-typed version: bdf1e66252/react-redux_v5.x.x/flow_>=v0.30.x import type { Dispatch, Store } from 'redux' diff --git a/flow-typed/npm/redux_v3.x.x.js b/flow-typed/npm/redux_v3.x.x.js index 00fe623..0094abf 100644 --- a/flow-typed/npm/redux_v3.x.x.js +++ b/flow-typed/npm/redux_v3.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 16c00f089e1856fd9988a45242bb927f -// flow-typed version: /redux_v3.x.x/flow_>=v0.33.x +// flow-typed signature: ba132c96664f1a05288f3eb2272a3c35 +// flow-typed version: c4bbd91cfc/redux_v3.x.x/flow_>=v0.33.x declare module 'redux' { diff --git a/flow-typed/npm/uuid_v3.x.x.js b/flow-typed/npm/uuid_v3.x.x.js index e772e9e..0bf9195 100644 --- a/flow-typed/npm/uuid_v3.x.x.js +++ b/flow-typed/npm/uuid_v3.x.x.js @@ -1,5 +1,5 @@ -// flow-typed signature: 4739159d5b286c2926b99fd2ea86abcb -// flow-typed version: /uuid_v3.x.x/flow_>=v0.33.x +// flow-typed signature: c07f382c8238bb78e545b60dd4f097a6 +// flow-typed version: 27f92307d3/uuid_v3.x.x/flow_>=v0.33.x declare module 'uuid' { declare function v1(options?: {| diff --git a/package.json b/package.json index af95b07..658dac7 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "react-apollo": "^0.7.2", "react-native": "0.42.0-rc.3", "react-native-vector-icons": "^4.0.0", + "react-navigation": "^1.0.0-beta.5", "react-redux": "^5.0.2", "redux": "^3.6.0", "redux-observable": "^0.12.2", diff --git a/src/app/Root.js b/src/app/Root.js index e1f6132..bb734c3 100644 --- a/src/app/Root.js +++ b/src/app/Root.js @@ -8,7 +8,7 @@ import { Provider as ReduxProvider } from 'react-redux' import { ApolloProvider } from 'react-apollo' // Routing Container -import RootContainer from '../ui/RootContainer' +import RootComponent from '../ui/Root' // Permissions // import Permissions from 'react-native-permissions' @@ -22,7 +22,7 @@ export default class Root extends Component { return ( - + ) diff --git a/src/main.js b/src/main.js index 2eb209d..97b6b67 100644 --- a/src/main.js +++ b/src/main.js @@ -67,7 +67,7 @@ const persistConfig = { keyPrefix: `${APP_REDUX_KEY}`, storage: AsyncStorage } -persistStore(store, persistConfig).purge() +persistStore(store, persistConfig) const AppPlayground = (): React$Element => ( diff --git a/src/redux/ducks/nav.js b/src/redux/ducks/nav.js deleted file mode 100644 index c01bed6..0000000 --- a/src/redux/ducks/nav.js +++ /dev/null @@ -1,67 +0,0 @@ -/* flow */ - -import routes from '../../ui/routes/routes' - -import type { - Route, - NavState, - Action -} from '../../types' - -import { HORIZONTAL, directionByPush } from '../../ui/routes/constants' - -import { PUSH_ROUTE, POP_ROUTE } from './constants' - -const initialState = { - index: 0, - pushDirection: HORIZONTAL, - routes: [routes.home] -} - -export default (state: NavState = initialState, action: Action = {}): NavState => { - if (!action.type) return state - - switch (action.type) { - - case PUSH_ROUTE: - const route = action.payload.route - const routes = state.routes.slice() - routes.push(route) - - return { - index: routes.length - 1, - routes, - pushDirection: directionByPush[route.pushType], - interpolator: route.interpolator - } - - case POP_ROUTE: - if (state.index <= 0) { return state } - // es lint is complaining, so humoring it - const popRoutes = state.routes - const lastRoute = popRoutes.pop() - - return { - index: popRoutes.length - 1, - routes: popRoutes, - pushDirection: directionByPush[lastRoute.pushType], - interpolator: lastRoute.interpolator - } - - default: - return state - } -} - -const push = (route: Route): Action => { - return { - type: PUSH_ROUTE, - payload: { route: route } - } -} - -export const showLeft = (): Action => push(routes.left) -export const showRight = (): Action => push(routes.right) -export const showModal = (): Action => push(routes.modal) - -export const pop = (): Action => { return { type: POP_ROUTE } } diff --git a/src/redux/initialState.js b/src/redux/initialState.js index f87c3f5..94bf7db 100644 --- a/src/redux/initialState.js +++ b/src/redux/initialState.js @@ -2,10 +2,8 @@ import config from './ducks/config' import device from './ducks/device' -import nav from './ducks/nav' export default { - config: config(), - device: device(), - nav: nav() + config, + device } diff --git a/src/redux/makeReducer.js b/src/redux/makeReducer.js index 42cc01d..1536701 100644 --- a/src/redux/makeReducer.js +++ b/src/redux/makeReducer.js @@ -2,12 +2,10 @@ import { combineReducers } from 'redux' import config from './ducks/config' import device from './ducks/device' -import nav from './ducks/nav' const appReducers = { config, - device, - nav + device } export default (newReducers) => { diff --git a/src/ui/Root.js b/src/ui/Root.js new file mode 100644 index 0000000..c292b21 --- /dev/null +++ b/src/ui/Root.js @@ -0,0 +1,26 @@ +/* @flow */ + +import React from 'react' // eslint-disable-line no-unused-vars +import { Platform } from 'react-native' + +import { StackNavigator } from 'react-navigation' + +import MainNavigator from './nav/navigators/MainNavigator' +import ModalNavigator from './nav/navigators/ModalNavigator' + +export default StackNavigator( + { + Main: { + screen: MainNavigator, + path: '' + }, + Modal: { + screen: ModalNavigator + } + }, + { + initialRouteName: 'Main', + mode: 'modal', + headerMode: 'none' + } +) diff --git a/src/ui/RootContainer.js b/src/ui/RootContainer.js deleted file mode 100644 index 7ec1723..0000000 --- a/src/ui/RootContainer.js +++ /dev/null @@ -1,115 +0,0 @@ -/* @flow */ - -import React, { Component } from 'react' // eslint-disable-line no-unused-vars -import { NavigationExperimental, Platform, BackAndroid } from 'react-native' - -import { connect } from 'react-redux' - -import scenes from './routes/scenes' - -import { pop } from '../redux/ducks/nav' - -import NavigationHeaderInterpolatable from './custom/NavigationHeaderInterpolatable' - -const { - CardStack: NavigationCardStack, - Header: NavigationHeader -} = NavigationExperimental - -import type { // eslint-disable-line no-duplicate-imports - NavigationSceneRendererProps -} from 'react-native' - -import type { - NavState, - NativeState -} from '../types' - -type Props = { - navState: NavState, - pop: () => () => void -}; - -const SEARCH_SCREEN_INDEX = 0 - -export class RootContainer extends Component { - - props: Props - static defaultProps = {} - - constructor(props: Props) { - super(props) - - if (Platform.OS === 'android') { - BackAndroid.addEventListener('hardwareBackPress', (): bool => { - const { navState, pop } = this.props - if (navState.index !== SEARCH_SCREEN_INDEX) { - pop() - return true - } - return false - }) - } - } - - render(): React$Element { - const { navState, pop } = this.props - - // Used to bypass flow - const sceneInterpolator: mixed = (navState.interpolator) ? navState.interpolator.scene : undefined - - return ( - - ) - } - - _renderHeader(navProps: NavigationSceneRendererProps): React$Element { - const { navState, pop } = this.props - - const index = navState.index - const currentRoute = navState.routes[index] - - const sharedProps = { - ...navProps, - onNavigateBack: pop, - renderLeftComponent: currentRoute.leftNavRenderer, - renderRightComponent: currentRoute.rightNavRenderer - } - - if (navState.interpolator && navState.interpolator.header) { - return ( - - ) - } else { return () } - } - - _renderScene(navProps: NavigationSceneRendererProps): React$Element { - return scenes[navProps.scene.route.key] - } -} - -const mapStateToProps = (state: NativeState): Object => { - return { - navState: state.nav - } -} - -const mapDispatchToProps = (dispatch: Function): Object => { - return { - pop: (): void => dispatch(pop()) - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(RootContainer) diff --git a/src/ui/nav/navigators/MainNavigator.js b/src/ui/nav/navigators/MainNavigator.js new file mode 100644 index 0000000..dad24fa --- /dev/null +++ b/src/ui/nav/navigators/MainNavigator.js @@ -0,0 +1,32 @@ +/* @flow */ + +import React from 'react' // eslint-disable-line no-unused-vars +import { Platform } from 'react-native' + +import { StackNavigator } from 'react-navigation' + +import Home from '../../scenes/Home' +import Left from '../../scenes/Left' +import Right from '../../scenes/Right' + +export default StackNavigator( + { + Home: { + screen: Home, + path: '' + }, + Left: { + screen: Left, + path: 'left' + }, + Right: { + screen: Right, + path: 'right' + } + }, + { + initialRouteName: 'Home', + mode: 'card', + headerMode: Platform.OS === 'ios' ? 'float' : 'screen' + } +) diff --git a/src/ui/nav/navigators/ModalNavigator.js b/src/ui/nav/navigators/ModalNavigator.js new file mode 100644 index 0000000..b56a3f8 --- /dev/null +++ b/src/ui/nav/navigators/ModalNavigator.js @@ -0,0 +1,22 @@ +/* @flow */ + +import React from 'react' // eslint-disable-line no-unused-vars +import { Platform } from 'react-native' + +import { StackNavigator } from 'react-navigation' + +import Modal from '../../scenes/Modal' + +export default StackNavigator( + { + Modal: { + screen: Modal, + path: 'modal' + } + }, + { + initialRouteName: 'Modal', + mode: 'card', + headerMode: 'none' + } +) diff --git a/src/ui/partials/common/IconButton.js b/src/ui/partials/common/IconButton.js new file mode 100644 index 0000000..4c50297 --- /dev/null +++ b/src/ui/partials/common/IconButton.js @@ -0,0 +1,23 @@ +import React, { React$Element, Component } from 'react' // eslint-disable-line no-unused-vars + +import { TouchableHighlight } from 'react-native' + +import Icon from 'react-native-vector-icons/FontAwesome' + +export default class IconButton extends Component { + render(): React$Element { + // TODO: Localization + return ( + + + + ) + } +} diff --git a/src/ui/partials/common/NavButton.js b/src/ui/partials/common/NavButton.js deleted file mode 100644 index f6e5f8d..0000000 --- a/src/ui/partials/common/NavButton.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, { React$Element, Component } from 'react' // eslint-disable-line no-unused-vars - -import { TouchableHighlight } from 'react-native' - -import { LEFT, RIGHT } from '../../routes/constants' - -import Icon from 'react-native-vector-icons/FontAwesome' - -export class NavButton extends Component { - render(): React$Element { - const iconName = (this.props.title === LEFT) ? 'bars' : 'globe' - - return ( - - - - ) - } - - _onPress() { - switch (this.props.title) { - case LEFT: return this.props.showLeft() - case RIGHT: return this.props.showRight() - default: return this.props.pop() - } - } -} - -import { showLeft, showRight, pop } from '../../../redux/ducks/nav' -import { connect } from 'react-redux' - -export const mapDispatchToProps = (dispatch: Function): Object => ({ - showLeft: (): void => dispatch(showLeft()), - showRight: (): void => dispatch(showRight()), - pop: (): void => dispatch(pop()) -}) - -export default connect(null, mapDispatchToProps)(NavButton) diff --git a/src/ui/routes/interpolators/constants.js b/src/ui/routes-old-tmp/interpolators/constants.js similarity index 100% rename from src/ui/routes/interpolators/constants.js rename to src/ui/routes-old-tmp/interpolators/constants.js diff --git a/src/ui/routes/interpolators/leftHorizontal.js b/src/ui/routes-old-tmp/interpolators/leftHorizontal.js similarity index 100% rename from src/ui/routes/interpolators/leftHorizontal.js rename to src/ui/routes-old-tmp/interpolators/leftHorizontal.js diff --git a/src/ui/routes/constants.js b/src/ui/routes/constants.js deleted file mode 100644 index ac99e2b..0000000 --- a/src/ui/routes/constants.js +++ /dev/null @@ -1,15 +0,0 @@ -export const MODAL = 'MODAL' -export const DEFAULT = 'DEFAULT' - -export const VERTICAL = 'vertical' -export const HORIZONTAL = 'horizontal' - -export const HOME = 'Home' -export const LEFT = 'Left' -export const MODAL_TITLE = 'Modal' -export const RIGHT = 'Right' - -export const directionByPush = { - [MODAL]: VERTICAL, - [DEFAULT]: HORIZONTAL -} diff --git a/src/ui/routes/routes.js b/src/ui/routes/routes.js deleted file mode 100644 index c8dde37..0000000 --- a/src/ui/routes/routes.js +++ /dev/null @@ -1,48 +0,0 @@ -/* @flow */ - -import React, { Component } from 'react' // eslint-disable-line no-unused-vars - -import { - DEFAULT, - HOME, - LEFT, - MODAL, - MODAL_TITLE, - RIGHT -} from './constants' - -import leftHorizontal from './interpolators/leftHorizontal' - -import NavButton from '../partials/common/NavButton' - -const button = (title: string): () => React$Element => { - return (): React$Element => () -} - -export default { - home: { - key: HOME, - title: HOME, - pushType: DEFAULT, - leftNavRenderer: button(LEFT), - rightNavRenderer: button(RIGHT) - }, - left: { - key: LEFT, - title: LEFT, - pushType: DEFAULT, - leftNavRenderer: (): null => { return null }, - rightNavRenderer: button(HOME), - interpolator: leftHorizontal - }, - modal: { - key: MODAL_TITLE, - title: MODAL_TITLE, - pushType: MODAL - }, - right: { - key: RIGHT, - title: RIGHT, - pushType: DEFAULT - } -} diff --git a/src/ui/routes/scenes.js b/src/ui/routes/scenes.js deleted file mode 100644 index 43aa380..0000000 --- a/src/ui/routes/scenes.js +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react' // eslint-disable-line no-unused-vars - -import Home from '../scenes/Home' -import Left from '../scenes/Left' -import Modal from '../scenes/Modal' -import Right from '../scenes/Right' - -import { - HOME, - RIGHT, - MODAL_TITLE, - LEFT -} from './constants' - -export default { - [HOME]: , - [RIGHT]: , - [MODAL_TITLE]: , - [LEFT]: -} diff --git a/src/ui/scenes/Home.js b/src/ui/scenes/Home.js index 99da279..b70a3c3 100644 --- a/src/ui/scenes/Home.js +++ b/src/ui/scenes/Home.js @@ -8,7 +8,23 @@ import { TouchableOpacity } from 'react-native' -export class Home extends Component { +import IconButton from '../partials/common/IconButton' + +export default class Home extends Component { + + static navigationOptions = { + title: 'Home', // TODO: Localization + header: ({ navigate }: Object): Object => { + return { + right: navigate('Right')} + />, + left: navigate('Left')} + /> + } + } + } render(): React$Element { return ( @@ -25,7 +41,7 @@ export class Home extends Component { - + Modal @@ -33,16 +49,20 @@ export class Home extends Component { ) } -} -import { showModal } from '../../redux/ducks/nav' - -export const mapDispatchToProps = (dispatch: Function): Object => ({ - showModal: (): void => dispatch(showModal()) -}) + _showModal() { + this.props.navigation.navigate('Modal') + } +} -import { connect } from 'react-redux' -export default connect(null, mapDispatchToProps)(Home) +// import { showModal } from '../../redux/ducks/nav' +// +// export const mapDispatchToProps = (dispatch: Function): Object => ({ +// showModal: (): void => dispatch(showModal()) +// }) +// +// import { connect } from 'react-redux' +// export default connect(null, mapDispatchToProps)(Home) const styles = StyleSheet.create({ container: { diff --git a/src/ui/scenes/Left.js b/src/ui/scenes/Left.js index 055d7de..be29dae 100644 --- a/src/ui/scenes/Left.js +++ b/src/ui/scenes/Left.js @@ -8,6 +8,10 @@ import { export default class Left extends Component { + static navigationOptions = { + title: 'Left' // TODO: Localization + } + render(): React$Element { return ( diff --git a/src/ui/scenes/Modal.js b/src/ui/scenes/Modal.js index 31f7d73..f5fabc7 100644 --- a/src/ui/scenes/Modal.js +++ b/src/ui/scenes/Modal.js @@ -6,17 +6,54 @@ import { View } from 'react-native' +import IconButton from '../partials/common/IconButton' + export default class Modal extends Component { + static navigationOptions = { + title: 'Modal' // TODO: Localization + } + render(): React$Element { + console.log(this.props) return ( - + + + + + + + + + ) } + + _goBack() { + this.props.navigation.dispatch({ + type: 'Navigation/BACK' + }) + } } const styles = StyleSheet.create({ - container: { + edgeContainer: { + bottom: 0, + left: 0, + position: 'absolute', + right: 0, + top: 0 + }, + iconContainer: { + left: 0, + position: 'absolute', + top: 25 + }, + content: { flex: 1, justifyContent: 'center', alignItems: 'center', diff --git a/src/ui/scenes/Right.js b/src/ui/scenes/Right.js index 3aeaed7..8a1c767 100644 --- a/src/ui/scenes/Right.js +++ b/src/ui/scenes/Right.js @@ -8,6 +8,10 @@ import { export default class Left extends Component { + static navigationOptions = { + title: 'Right' // TODO: Localization + } + render(): React$Element { return ( diff --git a/yarn.lock b/yarn.lock index c31f93b..581c6c6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -265,6 +265,10 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +autobind-decorator@^1.3.2: + version "1.3.4" + resolved "https://registry.yarnpkg.com/autobind-decorator/-/autobind-decorator-1.3.4.tgz#b67560e6bbbb68a35c049c82d6351ea0e82d820d" + aws-sign2@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" @@ -1131,6 +1135,10 @@ circular-json@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" +clamp@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634" + cli-cursor@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" @@ -3245,13 +3253,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.7: +mime-types@2.1.11, mime-types@~2.1.7, mime-types@~2.1.9: 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.11, mime-types@~2.1.13, mime-types@~2.1.6, mime-types@~2.1.9: +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.6: version "2.1.14" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" dependencies: @@ -3578,6 +3586,12 @@ path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +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-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -3751,6 +3765,21 @@ react-dom@^15.4.2: loose-envify "^1.1.0" object-assign "^4.1.0" +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@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/react-native-drawer-layout/-/react-native-drawer-layout-1.1.1.tgz#71aa76793e2a8ee451c3e9d0b76b6092d881899c" + dependencies: + autobind-decorator "^1.3.2" + react-native-dismiss-keyboard "1.0.0" + +react-native-tab-view@^0.0.55: + version "0.0.55" + resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-0.0.55.tgz#6e82c50f916b46e0a5af2f9748e6aca36d58f7ad" + react-native-vector-icons@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-4.0.0.tgz#6a2f8f4c6ace613aed7748cd530809283e5b1538" @@ -3838,6 +3867,17 @@ react-native@0.42.0-rc.3: xmldoc "^0.4.0" yargs "^6.4.0" +react-navigation@^1.0.0-beta.5: + version "1.0.0-beta.5" + resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-1.0.0-beta.5.tgz#28f0cf6e9ab12e25f927dbc63efa51cf7d5ab8a5" + dependencies: + clamp "^1.0.1" + fbjs "^0.8.5" + hoist-non-react-statics "^1.2.0" + path-to-regexp "^1.7.0" + react-native-drawer-layout "^1.1.0" + react-native-tab-view "^0.0.55" + react-proxy@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a"