Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit f7b19ee

Browse files
committed
unsubscribe from router events
1 parent 9d50dda commit f7b19ee

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/components/Navbar.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,25 @@ const Navbar = () => {
2222
const [displayMenu, setMenu] = useState<boolean>(false);
2323
const [loading, setLoading] = useState<boolean>(false);
2424

25-
// Hide the menu drawer when navigating to a different page.
25+
// Handle visual effects when the navigation starts.
2626
useEffect(() => {
27-
Router.events.on('routeChangeStart', () => setMenu(false));
27+
const handleRouterChange = () => {
28+
setMenu(false);
29+
setLoading(true);
30+
};
31+
Router.events.on('routeChangeStart', handleRouterChange);
32+
return () => Router.events.off('routeChangeStart', handleRouterChange);
2833
}, []);
2934

30-
// Add a loading effect when navigating to a different page.
35+
// Handle visual effects when the navigation ends or has an error.
3136
useEffect(() => {
32-
Router.events.on('routeChangeStart', () => setLoading(true));
33-
Router.events.on('routeChangeComplete', () => setLoading(false));
34-
Router.events.on('routeChangeError', () => setLoading(false));
37+
const handleRouterChange = () => setLoading(false);
38+
Router.events.on('routeChangeComplete', handleRouterChange);
39+
Router.events.on('routeChangeError', handleRouterChange);
40+
return () => {
41+
Router.events.off('routeChangeComplete', handleRouterChange);
42+
Router.events.off('routeChangeError', handleRouterChange);
43+
};
3544
}, []);
3645

3746
return (

src/components/PostBarLessons.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ const PostBarLessons = ({
4646
const translate = useTranslation();
4747

4848
useEffect(() => {
49-
Router.events.on('routeChangeStart', () => setDrawer(false));
49+
const handleRouteChange = () => setDrawer(false);
50+
Router.events.on('routeChangeStart', handleRouteChange);
51+
return () => Router.events.off('routeChangeStart', handleRouteChange);
5052
}, []);
5153

5254
useEffect(() => {

0 commit comments

Comments
 (0)