Files
outline/app/components/NavLink.tsx
Tom Moor 15b1069bcc chore: Move to Typescript (#2783)
This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously.

closes #1282
2021-11-29 06:40:55 -08:00

29 lines
698 B
TypeScript

import * as React from "react";
import { NavLink, Route } from "react-router-dom";
type Props = React.ComponentProps<typeof NavLink> & {
children?: (match: any) => React.ReactNode;
exact?: boolean;
activeStyle?: React.CSSProperties;
to: string;
};
function NavLinkWithChildrenFunc(
{ to, exact = false, children, ...rest }: Props,
ref?: React.Ref<HTMLAnchorElement>
) {
return (
<Route path={to} exact={exact}>
{({ match }) => (
<NavLink {...rest} to={to} exact={exact} ref={ref}>
{children ? children(match) : null}
</NavLink>
)}
</Route>
);
}
export default React.forwardRef<HTMLAnchorElement, Props>(
NavLinkWithChildrenFunc
);