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
29 lines
698 B
TypeScript
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
|
|
);
|