Skip to content

Commit 088be2c

Browse files
author
Micaela Torres
committed
chore: added properties from react-router link component
1 parent 7c944f2 commit 088be2c

File tree

3 files changed

+41
-24
lines changed

3 files changed

+41
-24
lines changed

src/common/app-link/app-link.tsx

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,35 @@ import type { Params, RouteName } from "../../routes/routes";
1313
defined in this project. To link outside, use <a></a> tags as usual.
1414
*/
1515

16+
type Route = {
17+
pathParams?: Params;
18+
queryParams?: Params;
19+
routeName: RouteName;
20+
};
21+
1622
// Extract pathParams from the routeName
17-
type AppLinkProps<R extends RouteName> = {
23+
type AppLinkProps = {
1824
children: React.ReactNode;
1925
className?: string;
20-
pathParams?: Params;
21-
queryParams?: Params;
22-
routeName: R;
26+
route: Route;
2327
targetBlank?: boolean;
28+
replace?: boolean;
29+
preventScrollReset?: boolean;
30+
state?: any;
31+
reloadDocument?: boolean;
2432
};
2533

2634
const defaultProps = {
2735
className: "",
28-
pathParams: {},
29-
queryParams: {},
3036
targetBlank: false,
37+
replace: false,
38+
preventScrollReset: false,
39+
reloadDocument: false,
3140
};
3241

33-
const AppLink = <R extends RouteName>(props: AppLinkProps<R>) => {
34-
const routePath = getRouteFor(
35-
props.routeName,
36-
props.pathParams,
37-
props.queryParams,
38-
);
42+
const AppLink = (props: AppLinkProps) => {
43+
const { routeName, pathParams, queryParams } = props.route;
44+
const routePath = getRouteFor(routeName, pathParams, queryParams);
3945
let targetBlankProps = {};
4046
if (props.targetBlank) {
4147
targetBlankProps = {
@@ -44,7 +50,15 @@ const AppLink = <R extends RouteName>(props: AppLinkProps<R>) => {
4450
};
4551
}
4652
return (
47-
<Link className={props.className} to={routePath} {...targetBlankProps}>
53+
<Link
54+
className={props.className}
55+
to={routePath}
56+
replace={props.replace}
57+
preventScrollReset={props.preventScrollReset}
58+
state={props.state}
59+
reloadDocument={props.reloadDocument}
60+
{...targetBlankProps}
61+
>
4862
{props.children}
4963
</Link>
5064
);

src/common/app-redirect/app-redirect.tsx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,24 @@ import type { Params, RouteName } from "../../routes/routes";
1313
defined in this project. To link outside, use <a></a> tags as usual.
1414
*/
1515

16-
type AppRedirectProps<R extends RouteName> = {
16+
type Route = {
1717
pathParams?: Params;
1818
queryParams?: Params;
19-
routeName: R;
19+
routeName: RouteName;
2020
};
2121

22-
const defaultProps = {
23-
pathParams: {},
24-
queryParams: {},
22+
type AppRedirectProps = {
23+
route: Route;
2524
};
2625

27-
const AppRedirect = <R extends RouteName>(props: AppRedirectProps<R>) => {
26+
const AppRedirect = (props: AppRedirectProps) => {
27+
const { routeName, pathParams, queryParams } = props.route;
2828
const goToPage = useGoToPage();
2929
useEffect(() => {
30-
goToPage(props.routeName, props.pathParams, props.queryParams);
30+
goToPage(routeName, pathParams, queryParams);
3131
}, []);
3232

3333
return null;
3434
};
3535

36-
AppRedirect.defaultProps = defaultProps;
37-
3836
export { AppRedirect };

src/common/navbar/navbar.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,16 @@ export const Navbar = () => (
1010
<Container>
1111
<div className={styles.internalContainer}>
1212
<div>
13-
<AppLink routeName={RouteName.Home}>Logo goes here</AppLink>
13+
<AppLink route={{ routeName: RouteName.Home }}>
14+
Logo goes here
15+
</AppLink>
1416
</div>
1517
<div className={styles.rightContainer}>
1618
<nav>
17-
<AppLink className={globalStyles.link} routeName={RouteName.About}>
19+
<AppLink
20+
className={globalStyles.link}
21+
route={{ routeName: RouteName.About }}
22+
>
1823
About
1924
</AppLink>
2025
</nav>

0 commit comments

Comments
 (0)