Skip to content

Commit 75b56db

Browse files
authored
Merge pull request #2148 from Lwiel/RDoc-3440
RDoc-3440 Added persisting of selected language
2 parents ff37092 + db207be commit 75b56db

File tree

3 files changed

+29
-8
lines changed

3 files changed

+29
-8
lines changed

src/components/LanguageSwitcher.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from "react";
1+
import React, { useEffect } from "react";
22
import { useLanguage } from "./LanguageContext";
33
import clsx from "clsx";
44

@@ -19,6 +19,12 @@ export default function LanguageSwitcher({
1919
}: LanguageSwitcherProps) {
2020
const { language, setLanguage } = useLanguage();
2121

22+
useEffect(() => {
23+
if (!supportedLanguages.includes(language)) {
24+
setLanguage(supportedLanguages[0]);
25+
}
26+
}, [supportedLanguages, language, setLanguage]);
27+
2228
return (
2329
<div className="flex flex-wrap gap-2 mb-8">
2430
{languages

src/theme/DocItem/index.tsx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import React, { type ReactNode } from "react";
22
import DocItem from "@theme-original/DocItem";
33
import type DocItemType from "@theme/DocItem";
44
import type { WrapperProps } from "@docusaurus/types";
5-
import { LanguageProvider } from "../../components/LanguageContext";
65

76
type Props = WrapperProps<typeof DocItemType>;
87

@@ -12,13 +11,11 @@ export default function DocItemWrapper(props: Props): ReactNode {
1211
title === "RavenDB Documentation" ||
1312
title === "RavenDB Cloud Documentation";
1413

15-
return (
14+
return (
1615
<div className="wrapper row">
17-
<LanguageProvider>
18-
<div className="col flex-1 min-w-0">
19-
<DocItem {...props} />
20-
</div>
21-
</LanguageProvider>
16+
<div className="col flex-1 min-w-0">
17+
<DocItem {...props} />
18+
</div>
2219
{!isHomePage && <div className="col col--3 lg:block"></div>}
2320
</div>
2421
);

src/theme/DocsRoot/index.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import React, {type ReactNode} from 'react';
2+
import clsx from 'clsx';
3+
import {ThemeClassNames, HtmlClassNameProvider} from '@docusaurus/theme-common';
4+
import renderRoutes from '@docusaurus/renderRoutes';
5+
import Layout from '@theme/Layout';
6+
7+
import type {Props} from '@theme/DocVersionRoot';
8+
import { LanguageProvider } from '@site/src/components/LanguageContext';
9+
10+
export default function DocsRoot(props: Props): ReactNode {
11+
return (
12+
<LanguageProvider>
13+
<HtmlClassNameProvider className={clsx(ThemeClassNames.wrapper.docsPages)}>
14+
<Layout>{renderRoutes(props.route.routes!)}</Layout>
15+
</HtmlClassNameProvider>
16+
</LanguageProvider>
17+
);
18+
}

0 commit comments

Comments
 (0)