From d9c4d9ba8a8762d27b65524ad34a285c5f2d078e Mon Sep 17 00:00:00 2001 From: slorber Date: Mon, 12 Oct 2020 18:32:51 +0200 Subject: [PATCH] use same priority order for all navbar items: activeVersion ?? preferredVersion ?? latestVersion --- .../src/theme/NavbarItem/DocNavbarItem.tsx | 6 ++++-- .../src/theme/NavbarItem/DocsVersionNavbarItem.tsx | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx index 602843f06c85..90b73d560a40 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx @@ -10,6 +10,7 @@ import DefaultNavbarItem from './DefaultNavbarItem'; import {useLatestVersion, useActiveDocContext} from '@theme/hooks/useDocs'; import clsx from 'clsx'; import type {Props} from '@theme/NavbarItem/DocNavbarItem'; +import useDocsPreferredVersion from '../../utils/docsPreferredVersion/useDocsPreferredVersion'; export default function DocNavbarItem({ docId, @@ -18,10 +19,11 @@ export default function DocNavbarItem({ docsPluginId, ...props }: Props): JSX.Element { - const latestVersion = useLatestVersion(docsPluginId); const {activeVersion, activeDoc} = useActiveDocContext(docsPluginId); + const {preferredVersion} = useDocsPreferredVersion(docsPluginId); + const latestVersion = useLatestVersion(docsPluginId); - const version = activeVersion ?? latestVersion; + const version = activeVersion ?? preferredVersion ?? latestVersion; const doc = version.docs.find((versionDoc) => versionDoc.id === docId); if (!doc) { diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx index 9a82a31ffba8..bab774760eca 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx @@ -9,6 +9,7 @@ import React from 'react'; import DefaultNavbarItem from './DefaultNavbarItem'; import {useActiveVersion, useLatestVersion} from '@theme/hooks/useDocs'; import type {Props} from '@theme/NavbarItem/DocsVersionNavbarItem'; +import useDocsPreferredVersion from '../../utils/docsPreferredVersion/useDocsPreferredVersion'; const getVersionMainDoc = (version) => version.docs.find((doc) => doc.id === version.mainDocId); @@ -20,8 +21,9 @@ export default function DocsVersionNavbarItem({ ...props }: Props): JSX.Element { const activeVersion = useActiveVersion(docsPluginId); + const {preferredVersion} = useDocsPreferredVersion(docsPluginId); const latestVersion = useLatestVersion(docsPluginId); - const version = activeVersion ?? latestVersion; + const version = activeVersion ?? preferredVersion ?? latestVersion; const label = staticLabel ?? version.label; const path = staticTo ?? getVersionMainDoc(version).path; return ;