Skip to content

Commit bb54d97

Browse files
authored
Merge pull request #21 from keepsimpleio/chore/header-active-page
chore: wait route change before setting the active page
2 parents c445b02 + eb0c9e2 commit bb54d97

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/components/ToolHeader/ToolHeader.tsx

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ const ToolHeader: FC<TToolHeader> = ({
100100
const [token, setToken] = useState<string | null>(null);
101101
const [usernameIsTakenError, setUsernameIsTakenError] = useState('');
102102
const [changedTitle, setChangedTitle] = useState(false);
103+
const [activePage, setActivePage] = useState<ActivePage>(null);
103104

104105
const {
105106
ourProjects,
@@ -158,9 +159,22 @@ const ToolHeader: FC<TToolHeader> = ({
158159
return null;
159160
};
160161

161-
const activePage = useMemo(() => {
162-
return getActiveFromPath(pathname);
163-
}, [pathname]);
162+
useEffect(() => {
163+
if (!router.isReady) return;
164+
165+
const sync = (url: string) => {
166+
const next = getActiveFromPath(url);
167+
if (next) setActivePage(next);
168+
};
169+
170+
sync(router.asPath);
171+
172+
router.events.on('routeChangeComplete', sync);
173+
174+
return () => {
175+
router.events.off('routeChangeComplete', sync);
176+
};
177+
}, [router.isReady, router]);
164178

165179
const openPodcastHandler = useCallback(() => {
166180
setOpenPodcast(prev => !prev);

0 commit comments

Comments
 (0)