diff --git a/packages/react-core/src/components/Tabs/Tabs.tsx b/packages/react-core/src/components/Tabs/Tabs.tsx index 5f4575ecfc5..1c997f8c095 100644 --- a/packages/react-core/src/components/Tabs/Tabs.tsx +++ b/packages/react-core/src/components/Tabs/Tabs.tsx @@ -206,7 +206,6 @@ class Tabs extends Component { backScrollAriaLabel: 'Scroll back', rightScrollAriaLabel: 'Scroll right', forwardScrollAriaLabel: 'Scroll forward', - component: TabsComponent.div, mountOnEnter: false, unmountOnExit: false, ouiaSafe: true, @@ -529,7 +528,8 @@ class Tabs extends Component { const overflowingTabProps = filteredChildrenOverflowing.map((child: React.ReactElement) => child.props); const uniqueId = id || getUniqueId(); - const Component: any = component === TabsComponent.nav ? 'nav' : 'div'; + const defaultComponent = isNav && !component ? 'nav' : 'div'; + const Component: any = component !== undefined ? component : defaultComponent; const localActiveKey = defaultActiveKey !== undefined ? uncontrolledActiveKey : activeKey; const isExpandedLocal = defaultIsExpanded !== undefined ? uncontrolledIsExpandedLocal : isExpanded; diff --git a/packages/react-core/src/components/Tabs/examples/Tabs.md b/packages/react-core/src/components/Tabs/examples/Tabs.md index 11e6ca62a0c..094482a76b4 100644 --- a/packages/react-core/src/components/Tabs/examples/Tabs.md +++ b/packages/react-core/src/components/Tabs/examples/Tabs.md @@ -189,6 +189,14 @@ Subtabs can also link to nav elements. ``` +### Tabs used for site navigation + +Site navigation tabs + +```ts file="./TabsSiteNav.tsx" + +``` + ### With separate content If a `` component is defined outside of a `` component, use the `tabContentRef` and `tabContentId` properties. The `hidden` property is used on `TabContent` to set the initial visible content. diff --git a/packages/react-core/src/components/Tabs/examples/TabsSiteNav.tsx b/packages/react-core/src/components/Tabs/examples/TabsSiteNav.tsx new file mode 100644 index 00000000000..54b4a8877f8 --- /dev/null +++ b/packages/react-core/src/components/Tabs/examples/TabsSiteNav.tsx @@ -0,0 +1,40 @@ +import { useState } from 'react'; +import { Tabs, Tab, TabTitleText } from '@patternfly/react-core'; + +export const TabsSiteNav: React.FunctionComponent = () => { + const [activeTabKey, setActiveTabKey] = useState(0); + // Toggle currently active tab + const handleTabClick = ( + event: React.MouseEvent | React.KeyboardEvent | MouseEvent, + tabIndex: string | number + ) => { + setActiveTabKey(tabIndex); + }; + return ( + + Users} href="#users" aria-label="Nav element content users"> + Users + + Containers} href="#containers"> + Containers + + Database} href="#database"> + Database + + Disabled} isDisabled href="#disabled"> + Disabled + + ARIA Disabled} isAriaDisabled href="#aria-disabled"> + ARIA Disabled + + Network} href="#network"> + Network + + + ); +};