From 3b6250645213b9a09af7ceebb8878be8a7cd0caa Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Wed, 25 Dec 2024 23:23:47 +0100 Subject: [PATCH] Memoize "useBackButton" returned function --- src/modules/core/hooks/useBackButton.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/modules/core/hooks/useBackButton.ts b/src/modules/core/hooks/useBackButton.ts index 8f113bf7..0e8c0abd 100644 --- a/src/modules/core/hooks/useBackButton.ts +++ b/src/modules/core/hooks/useBackButton.ts @@ -7,6 +7,7 @@ */ import { useLocation, useNavigate } from 'react-router-dom'; +import { useCallback } from 'react'; import { useNavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { AppRoutes } from '@/modules/core/AppRoute.constants.ts'; @@ -17,7 +18,7 @@ export const useBackButton = () => { const location = useLocation(); const { history } = useNavBarContext(); - return () => { + return useCallback(() => { const isHistoryEmpty = !history.length; const isLastPageInHistoryCurrentPage = history.length === 1 && history[0] === location.pathname; const ignorePreviousPage = history.length && PAGES_TO_IGNORE.some((page) => !!history.slice(-2)[0].match(page)); @@ -29,5 +30,5 @@ export const useBackButton = () => { } navigate(AppRoutes.library.path); - }; + }, [history, location.pathname]); };