Skip to content

Commit 860f035

Browse files
committed
Added new ref prop for navitem anchors
1 parent 72833ae commit 860f035

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

packages/react-core/src/components/Nav/NavItem.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ export interface NavItemProps extends Omit<React.HTMLProps<HTMLAnchorElement>, '
5252
ouiaId?: number | string;
5353
/** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
5454
ouiaSafe?: boolean;
55+
/** React ref for the anchor element within the nav item. */
56+
anchorRef?: React.Ref<HTMLAnchorElement>;
5557
/** @hide Forwarded ref */
5658
innerRef?: React.Ref<HTMLLIElement>;
5759
}
@@ -74,6 +76,7 @@ const NavItemBase: React.FunctionComponent<NavItemProps> = ({
7476
zIndex = 9999,
7577
icon,
7678
innerRef,
79+
anchorRef,
7780
...props
7881
}: NavItemProps) => {
7982
const { flyoutRef, setFlyoutRef, navRef } = useContext(NavContext);
@@ -194,6 +197,7 @@ const NavItemBase: React.FunctionComponent<NavItemProps> = ({
194197
const preventLinkDefault = preventDefault || !to;
195198
return (
196199
<Component
200+
ref={anchorRef}
197201
href={to}
198202
onClick={(e: any) => context.onSelect(e, groupId, itemId, to, preventLinkDefault, onClick)}
199203
className={css(
@@ -222,6 +226,7 @@ const NavItemBase: React.FunctionComponent<NavItemProps> = ({
222226
className: css(styles.navLink, isActive && styles.modifiers.current, child.props && child.props.className)
223227
}),
224228
tabIndex: child.props.tabIndex || tabIndex,
229+
ref: anchorRef,
225230
children: hasFlyout ? (
226231
<Fragment>
227232
{child.props.children}

packages/react-core/src/demos/Compass/examples/CompassDockDemo.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export const CompassDockDemo: React.FunctionComponent = () => {
9595
itemId={0}
9696
isActive={activeItem === 0}
9797
icon={<CubeIcon />}
98-
ref={navItem1Ref}
98+
anchorRef={navItem1Ref}
9999
aria-label="Link 1"
100100
/>
101101
<NavItem
@@ -106,7 +106,7 @@ export const CompassDockDemo: React.FunctionComponent = () => {
106106
itemId={1}
107107
isActive={activeItem === 1}
108108
icon={<FolderIcon />}
109-
ref={navItem2Ref}
109+
anchorRef={navItem2Ref}
110110
aria-label="Link 2"
111111
/>
112112
<NavItem
@@ -117,7 +117,7 @@ export const CompassDockDemo: React.FunctionComponent = () => {
117117
itemId={2}
118118
isActive={activeItem === 2}
119119
icon={<CloudIcon />}
120-
ref={navItem3Ref}
120+
anchorRef={navItem3Ref}
121121
aria-label="Link 3"
122122
/>
123123
<NavItem
@@ -128,7 +128,7 @@ export const CompassDockDemo: React.FunctionComponent = () => {
128128
itemId={3}
129129
isActive={activeItem === 3}
130130
icon={<CodeIcon />}
131-
ref={navItem4Ref}
131+
anchorRef={navItem4Ref}
132132
aria-label="Link 4"
133133
/>
134134
</NavList>

packages/react-core/src/demos/examples/Page/PageDockedNav.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export const PageDockedNav: React.FunctionComponent = () => {
111111
itemId={0}
112112
isActive={activeItem === 0}
113113
icon={<CubeIcon />}
114-
ref={navItem1Ref}
114+
anchorRef={navItem1Ref}
115115
aria-label="Link 1"
116116
/>
117117
<NavItem
@@ -121,7 +121,7 @@ export const PageDockedNav: React.FunctionComponent = () => {
121121
itemId={1}
122122
isActive={activeItem === 1}
123123
icon={<FolderIcon />}
124-
ref={navItem2Ref}
124+
anchorRef={navItem2Ref}
125125
aria-label="Link 2"
126126
/>
127127
<NavItem
@@ -131,7 +131,7 @@ export const PageDockedNav: React.FunctionComponent = () => {
131131
itemId={2}
132132
isActive={activeItem === 2}
133133
icon={<CloudIcon />}
134-
ref={navItem3Ref}
134+
anchorRef={navItem3Ref}
135135
aria-label="Link 3"
136136
/>
137137
<NavItem
@@ -141,7 +141,7 @@ export const PageDockedNav: React.FunctionComponent = () => {
141141
itemId={3}
142142
isActive={activeItem === 3}
143143
icon={<CodeIcon />}
144-
ref={navItem4Ref}
144+
anchorRef={navItem4Ref}
145145
aria-label="Link 4"
146146
/>
147147
</NavList>

0 commit comments

Comments
 (0)