Skip to content

Commit 51ee1f5

Browse files
feat(SideNavLink): wrap the component with forwardRef (#7193)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
1 parent 14e8871 commit 51ee1f5

4 files changed

Lines changed: 23 additions & 18 deletions

File tree

packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6986,6 +6986,7 @@ Map {
69866986
},
69876987
},
69886988
"SideNavLink" => Object {
6989+
"$$typeof": Symbol(react.forward_ref),
69896990
"defaultProps": Object {
69906991
"element": "a",
69916992
"large": false,
@@ -7021,6 +7022,7 @@ Map {
70217022
"type": "oneOfType",
70227023
},
70237024
},
7025+
"render": [Function],
70247026
},
70257027
"SideNavLinkText" => Object {
70267028
"propTypes": Object {

packages/react/src/components/UIShell/SideNavLink.js

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,19 @@ import SideNavLinkText from './SideNavLinkText';
1616

1717
const { prefix } = settings;
1818

19-
const SideNavLink = ({
20-
className: customClassName,
21-
children,
22-
renderIcon: IconElement,
23-
isActive,
24-
large,
25-
// eslint-disable-next-line no-unused-vars
26-
isSideNavExpanded,
27-
...rest
28-
}) => {
19+
const SideNavLink = React.forwardRef(function SideNavLink(
20+
{
21+
className: customClassName,
22+
children,
23+
renderIcon: IconElement,
24+
isActive,
25+
large,
26+
// eslint-disable-next-line no-unused-vars
27+
isSideNavExpanded,
28+
...rest
29+
},
30+
ref
31+
) {
2932
const className = cx({
3033
[`${prefix}--side-nav__link`]: true,
3134
[`${prefix}--side-nav__link--current`]: isActive,
@@ -34,7 +37,7 @@ const SideNavLink = ({
3437

3538
return (
3639
<SideNavItem large={large}>
37-
<Link {...rest} className={className}>
40+
<Link {...rest} className={className} ref={ref}>
3841
{IconElement && (
3942
<SideNavIcon small>
4043
<IconElement />
@@ -44,7 +47,7 @@ const SideNavLink = ({
4447
</Link>
4548
</SideNavItem>
4649
);
47-
};
50+
});
4851

4952
SideNavLink.propTypes = {
5053
...LinkPropTypes,

packages/react/src/components/UIShell/__tests__/__snapshots__/SideNav-test.js.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ exports[`SideNav should render 1`] = `
2020
onBlur={[Function]}
2121
onFocus={[Function]}
2222
>
23-
<SideNavLink
23+
<ForwardRef(SideNavLink)
2424
element="a"
2525
href="/"
2626
large={false}
@@ -51,7 +51,7 @@ exports[`SideNav should render 1`] = `
5151
</Link>
5252
</li>
5353
</SideNavItem>
54-
</SideNavLink>
54+
</ForwardRef(SideNavLink)>
5555
</nav>
5656
</ForwardRef(SideNav)>
5757
`;

packages/react/src/components/UIShell/__tests__/__snapshots__/SideNavLink-test.js.snap

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

33
exports[`SideNavLink should render 1`] = `
4-
<SideNavLink
4+
<ForwardRef(SideNavLink)
55
className="custom-classname"
66
element="a"
77
icon={
@@ -46,11 +46,11 @@ exports[`SideNavLink should render 1`] = `
4646
</Link>
4747
</li>
4848
</SideNavItem>
49-
</SideNavLink>
49+
</ForwardRef(SideNavLink)>
5050
`;
5151

5252
exports[`SideNavLink should render 2`] = `
53-
<SideNavLink
53+
<ForwardRef(SideNavLink)
5454
className="custom-classname"
5555
element="a"
5656
icon={
@@ -95,5 +95,5 @@ exports[`SideNavLink should render 2`] = `
9595
</Link>
9696
</li>
9797
</SideNavItem>
98-
</SideNavLink>
98+
</ForwardRef(SideNavLink)>
9999
`;

0 commit comments

Comments
 (0)