Skip to content

Commit 13759a7

Browse files
authored
Merge pull request #3932 from Blargian/fix_homepage_language_picker
fix mobile language picker bug on `/docs`
2 parents 0250b3d + 3641761 commit 13759a7

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

src/components/MobileSideBarMenu/MobileLanguagePicker.jsx

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,29 @@ const MobileLanguagePicker = ({ onLanguageChange }) => {
8686
};
8787

8888
// Handle language selection
89-
const handleLanguageSelect = (locale, href) => {
89+
const handleLanguageSelect = async (locale, href) => {
9090
setIsOpen(false);
9191

9292
// Notify parent component about language change if callback provided
9393
if (onLanguageChange) {
9494
onLanguageChange(locale, href);
95-
} else {
96-
// Fallback navigation if no callback
95+
}
96+
97+
// Try client-side navigation first
98+
try {
99+
// Use history.push for client-side navigation
100+
const { history } = await import('@docusaurus/router');
101+
history.push(href);
102+
103+
// Force a small delay to allow React to update, then trigger a re-render
104+
setTimeout(() => {
105+
// Force re-render by updating a state or triggering a window event
106+
window.dispatchEvent(new Event('languageChanged'));
107+
}, 100);
108+
109+
} catch (error) {
110+
// Fallback to full page reload if client-side navigation fails
111+
console.warn('Client-side navigation failed, falling back to full reload:', error);
97112
window.location.href = href;
98113
}
99114
};
@@ -144,9 +159,9 @@ const MobileLanguagePicker = ({ onLanguageChange }) => {
144159
// Handle docs root paths specifically
145160
if (currentPath === '/docs' || currentPath === '/docs/') {
146161
if (locale === i18n.defaultLocale || locale === 'en') {
147-
href = '/docs/';
162+
href = '/docs';
148163
} else {
149-
href = `/docs/${locale}/`;
164+
href = `/docs/${locale}`;
150165
}
151166
} else {
152167
// Remove existing locale from docs path if present

0 commit comments

Comments
 (0)