Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,578 changes: 21 additions & 1,557 deletions packages/react-core/src/components/Tabs/examples/Tabs.md

Large diffs are not rendered by default.

63 changes: 63 additions & 0 deletions packages/react-core/src/components/Tabs/examples/TabsBoxLight.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import React from 'react';
import { Tabs, Tab, TabTitleText, Checkbox, Tooltip } from '@patternfly/react-core';

export const TabsBoxLight: React.FunctionComponent = () => {
const [activeTabKey, setActiveTabKey] = React.useState<string | number>(0);
const [isTabsLightScheme, setIsTabsLightScheme] = React.useState<boolean>(true);
// Toggle currently active tab
const handleTabClick = (
event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
tabIndex: string | number
) => {
setActiveTabKey(tabIndex);
};

const toggleScheme = (checked: boolean) => {
setIsTabsLightScheme(checked);
};

const tooltip = (
<Tooltip content="Aria-disabled tabs are like disabled tabs, but focusable. Allows for tooltip support." />
);
return (
<div>
<Tabs
activeKey={activeTabKey}
onSelect={handleTabClick}
variant={isTabsLightScheme ? 'light300' : 'default'}
isBox
aria-label="Tabs in the box light variation example"
role="region"
>
<Tab eventKey={0} title={<TabTitleText>Users</TabTitleText>} aria-label="Box light variation content - users">
Users
</Tab>
<Tab eventKey={1} title={<TabTitleText>Containers</TabTitleText>}>
Containers
</Tab>
<Tab eventKey={2} title={<TabTitleText>Database</TabTitleText>}>
Database
</Tab>
<Tab eventKey={3} title={<TabTitleText>Disabled</TabTitleText>} isDisabled>
Disabled
</Tab>
<Tab eventKey={4} title={<TabTitleText>ARIA Disabled</TabTitleText>} isAriaDisabled>
ARIA Disabled
</Tab>
<Tab eventKey={5} title={<TabTitleText>ARIA Disabled (Tooltip)</TabTitleText>} isAriaDisabled tooltip={tooltip}>
ARIA Disabled (Tooltip)
</Tab>
</Tabs>
<div style={{ marginTop: '20px' }}>
<Checkbox
label="Tabs light variation"
isChecked={isTabsLightScheme}
onChange={toggleScheme}
aria-label="show light scheme variation checkbox"
id="toggle-scheme"
name="toggle-scheme"
/>
</div>
</div>
);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import React from 'react';
import { Tabs, Tab, TabTitleText } from '@patternfly/react-core';

export const TabsChildrenMounting: React.FunctionComponent = () => {
const [activeTabKey, setActiveTabKey] = React.useState<string | number>(0);
// Toggle currently active tab
const handleTabClick = (
event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
tabIndex: string | number
) => {
setActiveTabKey(tabIndex);
};

return (
<Tabs
mountOnEnter
activeKey={activeTabKey}
onSelect={handleTabClick}
aria-label="Tabs in the children mounting on click example"
role="region"
>
<Tab eventKey={0} title={<TabTitleText>Tab item 1</TabTitleText>} aria-label="Tab 1">
Tab 1 section
</Tab>
<Tab eventKey={1} title={<TabTitleText>Tab item 2</TabTitleText>} aria-label="Tab 2">
Tab 2 section
</Tab>
<Tab eventKey={2} title={<TabTitleText>Tab item 3</TabTitleText>} aria-label="Tab 3">
Tab 3 section
</Tab>
</Tabs>
);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import React from 'react';
import { Tabs, Tab, TabTitleText, TabContent, TabContentBody } from '@patternfly/react-core';

export const TabContentWithBodyPadding: React.FunctionComponent = () => {
const [activeTabKey, setActiveTabKey] = React.useState<string | number>(0);
// Toggle currently active tab
const handleTabClick = (
event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
tabIndex: string | number
) => {
setActiveTabKey(tabIndex);
};

const contentRef1 = React.createRef<HTMLElement>();
const contentRef2 = React.createRef<HTMLElement>();
const contentRef3 = React.createRef<HTMLElement>();

return (
<React.Fragment>
<Tabs
activeKey={activeTabKey}
onSelect={handleTabClick}
aria-label="Tabs in the body and padding example"
role="region"
>
<Tab
eventKey={0}
title={<TabTitleText>Tab item 1</TabTitleText>}
tabContentId="tab1SectionBodyPadding"
tabContentRef={contentRef1}
/>
<Tab
eventKey={1}
title={<TabTitleText>Tab item 2</TabTitleText>}
tabContentId="tab2SectionBodyPadding"
tabContentRef={contentRef2}
/>
<Tab
eventKey={2}
title={<TabTitleText>Tab item 3</TabTitleText>}
tabContentId="tab3SectionBodyPadding"
tabContentRef={contentRef3}
/>
</Tabs>
<div>
<TabContent eventKey={0} id="tab1SectionBodyPadding" ref={contentRef1}>
<TabContentBody hasPadding> Tab 1 section with body and padding </TabContentBody>
</TabContent>
<TabContent eventKey={1} id="tab2SectionBodyPadding" ref={contentRef2} hidden>
<TabContentBody hasPadding> Tab 2 section with body and padding </TabContentBody>
</TabContent>
<TabContent eventKey={2} id="tab3SectionBodyPadding" ref={contentRef3} hidden>
<TabContentBody hasPadding> Tab 3 section with body and padding </TabContentBody>
</TabContent>
</div>
</React.Fragment>
);
};
62 changes: 62 additions & 0 deletions packages/react-core/src/components/Tabs/examples/TabsDefault.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import React from 'react';
import { Tabs, Tab, TabTitleText, Checkbox, Tooltip } from '@patternfly/react-core';

export const TabsDefault: React.FunctionComponent = () => {
const [activeTabKey, setActiveTabKey] = React.useState<string | number>(0);
const [isBox, setIsBox] = React.useState<boolean>(false);
// Toggle currently active tab
const handleTabClick = (
event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
tabIndex: string | number
) => {
setActiveTabKey(tabIndex);
};

const toggleBox = (checked: boolean) => {
setIsBox(checked);
};

const tooltip = (
<Tooltip content="Aria-disabled tabs are like disabled tabs, but focusable. Allows for tooltip support." />
);
return (
<div>
<Tabs
activeKey={activeTabKey}
onSelect={handleTabClick}
isBox={isBox}
aria-label="Tabs in the default example"
role="region"
>
<Tab eventKey={0} title={<TabTitleText>Users</TabTitleText>} aria-label="Default content - users">
Users
</Tab>
<Tab eventKey={1} title={<TabTitleText>Containers</TabTitleText>}>
Containers
</Tab>
<Tab eventKey={2} title={<TabTitleText>Database</TabTitleText>}>
Database
</Tab>
<Tab eventKey={3} title={<TabTitleText>Disabled</TabTitleText>} isDisabled>
Disabled
</Tab>
<Tab eventKey={4} title={<TabTitleText>ARIA Disabled</TabTitleText>} isAriaDisabled>
ARIA Disabled
</Tab>
<Tab tooltip={tooltip} eventKey={5} title={<TabTitleText>ARIA Disabled (Tooltip)</TabTitleText>} isAriaDisabled>
ARIA Disabled (Tooltip)
</Tab>
</Tabs>
<div style={{ marginTop: '20px' }}>
<Checkbox
label="isBox"
isChecked={isBox}
onChange={toggleBox}
aria-label="show box variation checkbox"
id="toggle-box-default"
name="toggle-box-default"
/>
</div>
</div>
);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import React from 'react';
import { Tabs, Tab, TabTitleText, Checkbox } from '@patternfly/react-core';

export const TabsDefaultOverflow: React.FunctionComponent = () => {
const [activeTabKey, setActiveTabKey] = React.useState<string | number>(0);
const [isBox, setIsBox] = React.useState<boolean>(false);
// Toggle currently active tab
const handleTabClick = (
event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
tabIndex: string | number
) => {
setActiveTabKey(tabIndex);
};

const toggleBox = (checked: boolean) => {
setIsBox(checked);
};

return (
<div>
<Tabs
activeKey={activeTabKey}
onSelect={handleTabClick}
isBox={isBox}
aria-label="Tabs in the default overflow example"
role="region"
>
<Tab eventKey={0} title={<TabTitleText>Users</TabTitleText>} aria-label="Default overflow content users">
Users
</Tab>
<Tab eventKey={1} title={<TabTitleText>Containers</TabTitleText>}>
Containers
</Tab>
<Tab eventKey={2} title={<TabTitleText>Database</TabTitleText>}>
Database
</Tab>
<Tab eventKey={3} title={<TabTitleText>Server</TabTitleText>}>
Server
</Tab>
<Tab eventKey={4} title={<TabTitleText>System</TabTitleText>}>
System
</Tab>
<Tab eventKey={6} title={<TabTitleText>Network</TabTitleText>}>
Network
</Tab>
<Tab eventKey={7} title={<TabTitleText>Tab item 7</TabTitleText>}>
Tab 7 section
</Tab>
<Tab eventKey={8} title={<TabTitleText>Tab item 8</TabTitleText>}>
Tab 8 section
</Tab>
<Tab eventKey={9} title={<TabTitleText>Tab item 9</TabTitleText>}>
Tab 9 section
</Tab>
<Tab eventKey={10} title={<TabTitleText>Tab item 10</TabTitleText>}>
Tab 10 section
</Tab>
<Tab eventKey={11} title={<TabTitleText>Tab item 11</TabTitleText>}>
Tab 11 section
</Tab>
</Tabs>
<div style={{ marginTop: '20px' }}>
<Checkbox
label="isBox"
isChecked={isBox}
onChange={toggleBox}
aria-label="show box variation checkbox on overflow"
id="toggle-box-overflow"
name="toggle-box-overflow"
/>
</div>
</div>
);
};
51 changes: 51 additions & 0 deletions packages/react-core/src/components/Tabs/examples/TabsFilled.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import React from 'react';
import { Tabs, Tab, TabTitleText, Checkbox } from '@patternfly/react-core';

export const TabsFilled: React.FunctionComponent = () => {
const [activeTabKey, setActiveTabKey] = React.useState<string | number>(0);
const [isBox, setIsBox] = React.useState<boolean>(false);
// Toggle currently active tab
const handleTabClick = (
event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent,
tabIndex: string | number
) => {
setActiveTabKey(tabIndex);
};

const toggleBox = (checked: boolean) => {
setIsBox(checked);
};

return (
<div>
<Tabs
isFilled
activeKey={activeTabKey}
onSelect={handleTabClick}
isBox={isBox}
aria-label="Tabs in the filled example"
role="region"
>
<Tab eventKey={0} title={<TabTitleText>Users</TabTitleText>} aria-label="Tabs filled example content users">
Users
</Tab>
<Tab eventKey={1} title={<TabTitleText>Containers</TabTitleText>}>
Containers
</Tab>
<Tab eventKey={2} title={<TabTitleText>Database</TabTitleText>}>
Database
</Tab>
</Tabs>
<div style={{ marginTop: '20px' }}>
<Checkbox
label="isBox"
isChecked={isBox}
onChange={toggleBox}
aria-label="show box variation checkbox with filled tabs"
id="toggle-box-filled"
name="toggle-box-filled"
/>
</div>
</div>
);
};
Loading