From 184aebc387d02d981e9e8fbdf1855f07828be02d Mon Sep 17 00:00:00 2001 From: dratwas Date: Mon, 4 Sep 2017 16:02:19 +0200 Subject: [PATCH] navigation without react-navigation --- package.json | 1 - src/mobile/components/Navigator.js | 16 ------------ src/shared/config/routes.js | 19 -------------- src/shared/containers/Navigation.js | 39 +++++++++++++++++++++++++++++ src/shared/reducers/nav.js | 5 ---- src/shared/scenes/TodoScene.js | 3 +++ src/shared/selectors/nav.js | 1 - src/web/components/Navigation.js | 13 ---------- 8 files changed, 42 insertions(+), 55 deletions(-) delete mode 100644 src/mobile/components/Navigator.js delete mode 100644 src/shared/config/routes.js create mode 100644 src/shared/containers/Navigation.js delete mode 100644 src/shared/reducers/nav.js delete mode 100644 src/shared/selectors/nav.js delete mode 100644 src/web/components/Navigation.js diff --git a/package.json b/package.json index 8949bc3..1b8ecf7 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,6 @@ "react-dev-utils": "^4.0.0", "react-dom": "^16.0.0-beta.5", "react-native": "0.47.2", - "react-navigation": "^1.0.0-beta.11", "react-redux": "^5.0.6", "redux": "^3.7.2", "style-loader": "0.18.2", diff --git a/src/mobile/components/Navigator.js b/src/mobile/components/Navigator.js deleted file mode 100644 index f8ab949..0000000 --- a/src/mobile/components/Navigator.js +++ /dev/null @@ -1,16 +0,0 @@ -import { TabNavigator } from 'react-navigation'; -import routes from 'shared/config/routes'; - -const navigatorConfig = { - swipeEnabled: true, - tabBarOptions: { - labelStyle: { - fontSize: 14, - flex: 1, - justifyContent: 'center', - alignItems: 'center', - }, - }, -}; - -export default TabNavigator(routes, navigatorConfig); diff --git a/src/shared/config/routes.js b/src/shared/config/routes.js deleted file mode 100644 index 6f636f7..0000000 --- a/src/shared/config/routes.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import { withAll, withUncompleted, withCompleted } from 'shared/hocs/todo'; -import TodoScene from 'shared/scenes/TodoScene'; - -const AllTodos = (props) => (); -const CompletedTodos = (props) => (); -const UncompletedTodos = (props) => (); - -export default { - All: { - screen: withAll(AllTodos), - }, - Completed: { - screen: withCompleted(CompletedTodos), - }, - Uncompleted: { - screen: withUncompleted(UncompletedTodos), - }, -}; diff --git a/src/shared/containers/Navigation.js b/src/shared/containers/Navigation.js new file mode 100644 index 0000000..8ab7537 --- /dev/null +++ b/src/shared/containers/Navigation.js @@ -0,0 +1,39 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import { filter } from 'shared/actions/todo'; +import styled from 'styled-primitives'; + +const filters = ['All', 'Completed', 'Uncompleted']; + +const Wrapper = styled.View` + flex-direction: row; + display: flex; + width: 100%; + justify-content: space-between; +`; + +const NavigateButton = styled.Touchable` + width: 30%; + height: 50; +`; + +const Text = styled.Text` + text-align: center; + padding: 10px 0; +`; + +const Navigation = ({ navigateTo }) => + ( + {filters.map(filterName => + { navigateTo(filterName); }} + key={filterName} + > + {filterName} + + )} + ); + +export default connect(null, (dispatch) => ({ + navigateTo: (filterName) => { dispatch(filter(filterName)); }, +}))(Navigation); diff --git a/src/shared/reducers/nav.js b/src/shared/reducers/nav.js deleted file mode 100644 index 4d3539b..0000000 --- a/src/shared/reducers/nav.js +++ /dev/null @@ -1,5 +0,0 @@ -export default ({ router }) => { - const firstAction = router.getActionForPathAndParams('All'); - const initialState = router.getStateForAction(firstAction); - return (state = initialState, action) => router.getStateForAction(action, state) || state; -}; diff --git a/src/shared/scenes/TodoScene.js b/src/shared/scenes/TodoScene.js index 9e90c4a..394e433 100644 --- a/src/shared/scenes/TodoScene.js +++ b/src/shared/scenes/TodoScene.js @@ -2,6 +2,7 @@ import React from 'react'; import styled from 'styled-primitives'; import { connect } from 'react-redux'; import { getFiltered } from 'shared/selectors/todo'; +import Navigation from 'shared/containers/Navigation'; import AddTodo from 'shared/containers/AddTodo'; import TodoList from 'shared/components/TodoList'; @@ -20,6 +21,7 @@ const Header = styled.Text` const TodoScene = ({ title, todos }) => { return ( +
{title}
@@ -28,4 +30,5 @@ const TodoScene = ({ title, todos }) => { export default connect((state) => ({ todos: getFiltered(state), + title: state.todo.filter, }))(TodoScene); diff --git a/src/shared/selectors/nav.js b/src/shared/selectors/nav.js deleted file mode 100644 index d743ca0..0000000 --- a/src/shared/selectors/nav.js +++ /dev/null @@ -1 +0,0 @@ -export default (state) => state.nav; diff --git a/src/web/components/Navigation.js b/src/web/components/Navigation.js deleted file mode 100644 index 6f570ec..0000000 --- a/src/web/components/Navigation.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; - -export default ({ navigateTo, routes }) => - (
- {routes.map(route => - - )} -
)