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 = ( - - - - - - - - - - - - - - - - ); - - 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' },