mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-30 10:48:05 +02:00
fix(theme-classic): allow rendering single tab item (#8593)
This commit is contained in:
parent
2f02beebe2
commit
1bff83cacc
3 changed files with 17 additions and 1 deletions
|
@ -187,4 +187,16 @@ describe('Tabs', () => {
|
||||||
);
|
);
|
||||||
}).not.toThrow();
|
}).not.toThrow();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('accepts a single TabItem', () => {
|
||||||
|
expect(() => {
|
||||||
|
renderer.create(
|
||||||
|
<TestProviders>
|
||||||
|
<Tabs>
|
||||||
|
<TabItem value="val1">Val1</TabItem>
|
||||||
|
</Tabs>
|
||||||
|
</TestProviders>,
|
||||||
|
);
|
||||||
|
}).not.toThrow();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -109,6 +109,8 @@ function TabContent({
|
||||||
children,
|
children,
|
||||||
selectedValue,
|
selectedValue,
|
||||||
}: Props & ReturnType<typeof useTabs>) {
|
}: Props & ReturnType<typeof useTabs>) {
|
||||||
|
// eslint-disable-next-line no-param-reassign
|
||||||
|
children = Array.isArray(children) ? children : [children];
|
||||||
if (lazy) {
|
if (lazy) {
|
||||||
const selectedTabItem = children.find(
|
const selectedTabItem = children.find(
|
||||||
(tabItem) => tabItem.props.value === selectedValue,
|
(tabItem) => tabItem.props.value === selectedValue,
|
||||||
|
|
|
@ -32,7 +32,9 @@ export interface TabValue {
|
||||||
export interface TabsProps {
|
export interface TabsProps {
|
||||||
readonly lazy?: boolean;
|
readonly lazy?: boolean;
|
||||||
readonly block?: boolean;
|
readonly block?: boolean;
|
||||||
readonly children: readonly ReactElement<TabItemProps>[];
|
readonly children:
|
||||||
|
| readonly ReactElement<TabItemProps>[]
|
||||||
|
| ReactElement<TabItemProps>;
|
||||||
readonly defaultValue?: string | null;
|
readonly defaultValue?: string | null;
|
||||||
readonly values?: readonly TabValue[];
|
readonly values?: readonly TabValue[];
|
||||||
readonly groupId?: string;
|
readonly groupId?: string;
|
||||||
|
|
Loading…
Add table
Reference in a new issue