From fc4b756ec37b84ed3cdfa3434dda0e34a732e605 Mon Sep 17 00:00:00 2001 From: hackerman <3372410+aeneasr@users.noreply.github.com> Date: Thu, 26 Nov 2020 17:12:51 +0100 Subject: [PATCH] fix(v2): support rendering of singular tabs (#3823) * fix(v2): support rendering of singular tabs Closes #3822 * Update index.tsx * fix type Co-authored-by: slorber --- .../src/theme/Tabs/index.tsx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx b/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx index 7616a73c50..b66eea7320 100644 --- a/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx @@ -5,9 +5,10 @@ * LICENSE file in the root directory of this source tree. */ -import React, {useState, cloneElement} from 'react'; +import React, {useState, cloneElement, Children, ReactElement} from 'react'; import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext'; import type {Props} from '@theme/Tabs'; +import type {Props as TabItemProps} from '@theme/TabItem'; import clsx from 'clsx'; @@ -19,18 +20,14 @@ const keys = { }; function Tabs(props: Props): JSX.Element { - const { - lazy, - block, - children, - defaultValue, - values, - groupId, - className, - } = props; + const {lazy, block, defaultValue, values, groupId, className} = props; const {tabGroupChoices, setTabGroupChoices} = useUserPreferencesContext(); const [selectedValue, setSelectedValue] = useState(defaultValue); + const children = Children.toArray(props.children) as ReactElement< + TabItemProps + >[]; + if (groupId != null) { const relevantTabGroupChoice = tabGroupChoices[groupId]; if (