diff --git a/apps/react-redux/components/Link.js b/apps/react-redux/components/Link.js index 6fb8c17..5899916 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;