From a97d5fe1268352e7c0cbeb976114fe353b1a4ebf Mon Sep 17 00:00:00 2001 From: Max Mykhailenko Date: Sat, 19 Dec 2015 12:03:22 +0200 Subject: [PATCH 1/3] Update Link.js Remove navigateTo and router from props by using context --- apps/react-redux/components/Link.js | 34 +++++++++++++++++++---------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/apps/react-redux/components/Link.js b/apps/react-redux/components/Link.js index 6fb8c17..e70e1d7 100644 --- a/apps/react-redux/components/Link.js +++ b/apps/react-redux/components/Link.js @@ -1,25 +1,35 @@ import React, { PropTypes } from 'react'; +import { actions } from 'redux-router5'; -function Link(props) { - const { name, params, options, router, navigateTo } = props; +function Link(props, context) { + const { name, params, options } = props; + const router = context.router; + const {dispatch} = context.store; - const href = router.buildUrl(name); - const onClick = () => navigateTo(name, params, options); - const className = router.isActive(name, params) ? 'active' : ''; + const href = router.buildUrl(name, params); + const onClick = () => dispatch(actions.navigateTo(name, params, options)); + const className = props.className + (router.isActive(name, params) ? ' active' : ''); - return { props.children } + return { props.children }; } Link.propTypes = { - name: PropTypes.string.isRequired, - params: PropTypes.object, - options: PropTypes.object, - navigateTo: PropTypes.func.isRequired + name: PropTypes.string.isRequired, + className: PropTypes.string, + children: PropTypes.element.isRequired, + params: PropTypes.object, + options: PropTypes.object, }; +Link.contextTypes = { + router: PropTypes.object.isRequired, + store: PropTypes.object.isRequired, +}; + + Link.defaultProps = { - params: {}, - options: {} + params: {}, + options: {}, }; export default Link; From a6bc1a04c006d82e150c3f1d9c0fa406fa68e0b7 Mon Sep 17 00:00:00 2001 From: Max Mykhailenko Date: Sat, 19 Dec 2015 12:04:41 +0200 Subject: [PATCH 2/3] Update Link.js fix code style --- apps/react-redux/components/Link.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/react-redux/components/Link.js b/apps/react-redux/components/Link.js index e70e1d7..431281a 100644 --- a/apps/react-redux/components/Link.js +++ b/apps/react-redux/components/Link.js @@ -14,16 +14,16 @@ function Link(props, context) { } Link.propTypes = { - name: PropTypes.string.isRequired, + name: PropTypes.string.isRequired, className: PropTypes.string, - children: PropTypes.element.isRequired, - params: PropTypes.object, - options: PropTypes.object, + children: PropTypes.element.isRequired, + params: PropTypes.object, + options: PropTypes.object, }; Link.contextTypes = { router: PropTypes.object.isRequired, - store: PropTypes.object.isRequired, + store: PropTypes.object.isRequired, }; From 4c74df9261efd5717784b3f685bd48c5b04f1f04 Mon Sep 17 00:00:00 2001 From: Max Mykhailenko Date: Sat, 19 Dec 2015 12:06:12 +0200 Subject: [PATCH 3/3] Update Link.js fix code style --- apps/react-redux/components/Link.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/react-redux/components/Link.js b/apps/react-redux/components/Link.js index 431281a..5899916 100644 --- a/apps/react-redux/components/Link.js +++ b/apps/react-redux/components/Link.js @@ -4,7 +4,7 @@ import { actions } from 'redux-router5'; function Link(props, context) { const { name, params, options } = props; const router = context.router; - const {dispatch} = context.store; + const { dispatch } = context.store; const href = router.buildUrl(name, params); const onClick = () => dispatch(actions.navigateTo(name, params, options)); @@ -28,7 +28,7 @@ Link.contextTypes = { Link.defaultProps = { - params: {}, + params: {}, options: {}, };