0.1.5 • Published 6 years ago

as-nav-link v0.1.5

Weekly downloads
38
License
ISC
Repository
github
Last release
6 years ago

asNavLink

React Router HOC that mimics NavLink functionality but just passes an active prop to child component.

(For background see https://github.com/UKHomeOffice/govuk-react/issues/423)

e.g. when you want to use a CSSinJS library that expects an active prop but you're using React Router 😢

Usage

npm install as-nav-link --save

Your Dumb Component

Say you have a dumb/UI/styled component, such as:

const MyNavAnchor = styled(({
  as: T = 'a',
  ...props
}) => <T {...props} />)({
  textDecoration: 'blink',
  color: 'blue',
}, ({ active }) => (active && {
  color: 'red',
}));

Note that you need to provide the 'as' prop. This is provided by styled-components by default but needs to be done manually (as per code sample above) for emotion.

Higher order component

import asNavLink from 'as-nav-link';

const MyNavLink = asNavLink(config)(MyNavAnchor);

config is optional and can include an isActive function (as per ReactRouter's NavLink) and an activeProp string (the prop name that is passed to your dumb component).

Render Props

This HOC wraps a render props component. If you'd rather use render props directly, see NavLinkWithProp

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago