From c715efb34e038772c07e6d3b0e6ed6668596c51f Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 1 Feb 2022 12:48:06 +0000 Subject: [PATCH] Prevent nav context re-renders --- beta/src/components/useMenu.tsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/beta/src/components/useMenu.tsx b/beta/src/components/useMenu.tsx index 395b574c037..4435e5c4bce 100644 --- a/beta/src/components/useMenu.tsx +++ b/beta/src/components/useMenu.tsx @@ -51,13 +51,17 @@ export const useMenu = () => { }; }, [router.pathname, hideSidebar]); - return { - hideSidebar, - showSidebar, - toggleOpen, - menuRef, - isOpen, - }; + // Avoid top-level context re-renders + return React.useMemo( + () => ({ + hideSidebar, + showSidebar, + toggleOpen, + menuRef, + isOpen, + }), + [] + ); }; export const MenuContext = React.createContext>(