diff --git a/packages/react-table/src/docs/demos/Table.md b/packages/react-table/src/docs/demos/Table.md
index 1c4e2906f2d..e5dbdba7ce1 100644
--- a/packages/react-table/src/docs/demos/Table.md
+++ b/packages/react-table/src/docs/demos/Table.md
@@ -5,6 +5,7 @@ section: components
import {
Checkbox,
+Label,
PageSection,
ToolbarExpandIconWrapper,
ToolbarContent,
@@ -46,6 +47,7 @@ import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
import AttentionBellIcon from '@patternfly/react-icons/dist/esm/icons/attention-bell-icon';
import DashboardWrapper from '@patternfly/react-core/src/demos/examples/DashboardWrapper';
import BlueprintIcon from '@patternfly/react-icons/dist/esm/icons/blueprint-icon';
+import { rows, columns } from '../examples/Data.jsx';
## Demos
@@ -2784,234 +2786,65 @@ class ComplexPaginationTableDemo extends React.Component {
```js isFullscreen
import React from 'react';
-import {
- Avatar,
- Brand,
- Breadcrumb,
- BreadcrumbItem,
- Button,
- ButtonVariant,
- Dropdown,
- DropdownGroup,
- DropdownToggle,
- DropdownItem,
- KebabToggle,
- Nav,
- NavItem,
- NavList,
- Page,
- PageHeader,
- PageSection,
- PageSectionVariants,
- PageSidebar,
- SkipToContent,
- TextContent,
- Text,
- PageHeaderTools,
- PageHeaderToolsGroup,
- PageHeaderToolsItem
-} from '@patternfly/react-core';
-import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
-import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon';
-import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
-import imgBrand from '@patternfly/react-core/src/components/Brand/examples/pfLogo.svg';
-import imgAvatar from '@patternfly/react-core/src/components/Avatar/examples/avatarImg.svg';
+import { Label, PageSection } from '@patternfly/react-core';
import { Table, TableHeader, TableBody } from '@patternfly/react-table';
+import { rows } from '../examples/Data.jsx';
-class PageLayoutDefaultNav extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- isDropdownOpen: false,
- isKebabDropdownOpen: false,
- activeItem: 0,
- res: []
- };
- this.onDropdownToggle = isDropdownOpen => {
- this.setState({
- isDropdownOpen
- });
- };
-
- this.onDropdownSelect = event => {
- this.setState({
- isDropdownOpen: !this.state.isDropdownOpen
- });
- };
-
- this.onKebabDropdownToggle = isKebabDropdownOpen => {
- this.setState({
- isKebabDropdownOpen
- });
- };
-
- this.onKebabDropdownSelect = event => {
- this.setState({
- isKebabDropdownOpen: !this.state.isKebabDropdownOpen
- });
- };
-
- this.onNavSelect = result => {
- this.setState({
- activeItem: result.itemId
- });
- };
- }
-
- fetch(page, perPage) {
- this.setState({ loading: true });
- fetch(`https://jsonplaceholder.typicode.com/posts?_page=${page}&_limit=${perPage}`)
- .then(resp => resp.json())
- .then(resp => this.setState({ res: resp, perPage, page, total: 100 }))
- .catch(err => this.setState({ error: err, perPage: 0, page: 0, total: 0 }));
- }
-
- componentDidMount() {
- this.fetch(this.state.page || 1, this.state.perPage || 20);
- }
-
+class StickyHeaderTableDemo extends React.Component {
render() {
- const { isDropdownOpen, isKebabDropdownOpen, activeItem, res } = this.state;
-
- const PageNav = (
-
- );
- const kebabDropdownItems = [
-
- Settings
- ,
-
- Help
-
- ];
- const userDropdownItems = [
-
- My profile
-
- User management
-
- Logout
-
- ];
- const headerTools = (
-
-
-
-
-
-
-
-
-
-
-
- }
- isOpen={isKebabDropdownOpen}
- dropdownItems={kebabDropdownItems}
- />
-
-
- John Smith}
- dropdownItems={userDropdownItems}
- />
-
-
-
-
- );
-
- const Header = (
- } headerTools={headerTools} showNavToggle />
- );
- const Sidebar = ;
- const pageId = 'main-content-page-layout-default-nav';
- const PageSkipToContent = Skip to content;
-
- const PageBreadcrumb = (
-
- Section home
- Section title
- Section title
-
- Section landing
-
-
- );
+ const renderLabel = labelText => {
+ switch (labelText) {
+ case 'Running':
+ return ;
+ case 'Stopped':
+ return ;
+ case 'Needs Maintenance':
+ return ;
+ case 'Down':
+ return ;
+ }
+ };
return (
-
-
-
-
- Main title
-
- Body text should be Overpass Regular at 16px. It should have leading of 24px because
- of its relative line height of 1.5.
-
-
-
-
+
+
+
[post.title, post.body])}
+ cells={[
+ { title: 'Servers', transforms: [cellWidth(15)] },
+ { title: 'Threads', transforms: [cellWidth(10)] },
+ { title: 'Applications', transforms: [cellWidth(10)] },
+ { title: 'Workspaces', transforms: [cellWidth(10)] },
+ { title: 'Status', transforms: [cellWidth(10)] },
+ { title: 'Location', transforms: [cellWidth(15)] },
+ { title: 'Last Modified', transforms: [cellWidth(15)] },
+ { title: 'URL', transforms: [cellWidth(10)] }
+ ]}
+ rows={rows.map(row => [
+ row.name,
+ row.threads,
+ row.applications,
+ row.workspaces,
+ { title: renderLabel(row.status) },
+ row.location,
+ row.lastModified,
+ {
+ title: (
+
+ {row.url}
+
+ )
+ }
+ ])}
aria-label="Sticky Header Table Demo"
isStickyHeader
>
-
-
-
+
+
+
);
}
}
diff --git a/packages/react-table/src/docs/examples/Data.jsx b/packages/react-table/src/docs/examples/Data.jsx
index a999a49ab4c..060c4a71857 100644
--- a/packages/react-table/src/docs/examples/Data.jsx
+++ b/packages/react-table/src/docs/examples/Data.jsx
@@ -173,7 +173,7 @@ export const rows = [
applications: getRandomInteger(1, 50),
workspaces: getRandomInteger(1, 30),
status: ['Stopped', 'Running', 'Down', 'Needs Maintenance'][getRandomInteger(0, 3)],
- status: ['Stopped', 'Running', 'Down', 'Needs Maintenance'][getRandomInteger(0, 3)],
+ location: ['Raleigh', 'Boston', 'Atlanta', 'San Francisco'][getRandomInteger(0, 3)],
lastModified: '5 minutes ago',
url: 'http://www.redhat.com/en/office-locations/US-node16'
},