diff --git a/.changeset/fast-panthers-refuse.md b/.changeset/fast-panthers-refuse.md new file mode 100644 index 00000000000..016cda4e8d1 --- /dev/null +++ b/.changeset/fast-panthers-refuse.md @@ -0,0 +1,5 @@ +--- +"@primer/react": patch +--- + +Suppress SSR warning for useLayoutEffect in NavList, use useIsomorphicLayoutEffect instead of useLayoutEffect diff --git a/src/NavList/NavList.tsx b/src/NavList/NavList.tsx index cd06a1db8b9..8849f17a672 100644 --- a/src/NavList/NavList.tsx +++ b/src/NavList/NavList.tsx @@ -13,6 +13,7 @@ import StyledOcticon from '../StyledOcticon' import sx, {merge, SxProp} from '../sx' import {defaultSxProp} from '../utils/defaultSxProp' import {useId} from '../hooks/useId' +import useIsomorphicLayoutEffect from '../utils/useIsomorphicLayoutEffect' // ---------------------------------------------------------------------------- // NavList @@ -110,7 +111,7 @@ function ItemWithSubNav({children, subNav, sx: sxProp = defaultSxProp}: ItemWith const subNavRef = React.useRef(null) const [containsCurrentItem, setContainsCurrentItem] = React.useState(false) - React.useLayoutEffect(() => { + useIsomorphicLayoutEffect(() => { if (subNavRef.current) { // Check if SubNav contains current item const currentItem = subNavRef.current.querySelector('[aria-current]')