-
Notifications
You must be signed in to change notification settings - Fork 14
[RHCLOUD-43454] Updating data-view docs and adding compound options for Expandable, Sticky and Draggable #575
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Jakub007d
wants to merge
4
commits into
patternfly:main
Choose a base branch
from
Jakub007d:component
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+948
−55
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
72 changes: 72 additions & 0 deletions
72
...ernfly-docs/content/extensions/data-view/examples/Table/DataViewTableDraggableExample.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| import { FunctionComponent } from 'react'; | ||
| import { DataViewTable, DataViewTr, DataViewTh } from '@patternfly/react-data-view/dist/dynamic/DataViewTable'; | ||
| import { ExclamationCircleIcon } from '@patternfly/react-icons'; | ||
| import { Button } from '@patternfly/react-core'; | ||
| import { ActionsColumn } from '@patternfly/react-table'; | ||
|
|
||
| interface Repository { | ||
| id: number; | ||
| name: string; | ||
| branches: string | null; | ||
| prs: string | null; | ||
| workspaces: string; | ||
| lastCommit: string; | ||
| } | ||
|
|
||
| const repositories: Repository[] = [ | ||
| { id: 1, name: 'Repository one', branches: 'Branch one', prs: 'Pull request one', workspaces: 'Workspace one', lastCommit: 'Timestamp one' }, | ||
| { id: 2, name: 'Repository two', branches: 'Branch two', prs: 'Pull request two', workspaces: 'Workspace two', lastCommit: 'Timestamp two' }, | ||
| { id: 3, name: 'Repository three', branches: 'Branch three', prs: 'Pull request three', workspaces: 'Workspace three', lastCommit: 'Timestamp three' }, | ||
| { id: 4, name: 'Repository four', branches: 'Branch four', prs: 'Pull request four', workspaces: 'Workspace four', lastCommit: 'Timestamp four' }, | ||
| { id: 5, name: 'Repository five', branches: 'Branch five', prs: 'Pull request five', workspaces: 'Workspace five', lastCommit: 'Timestamp five' }, | ||
| { id: 6, name: 'Repository six', branches: 'Branch six', prs: 'Pull request six', workspaces: 'Workspace six', lastCommit: 'Timestamp six' } | ||
| ]; | ||
|
|
||
| const rowActions = [ | ||
| { | ||
| title: 'Some action', | ||
| onClick: () => console.log('clicked on Some action') // eslint-disable-line no-console | ||
| }, | ||
| { | ||
| title: <div>Another action</div>, | ||
| onClick: () => console.log('clicked on Another action') // eslint-disable-line no-console | ||
| }, | ||
| { | ||
| isSeparator: true | ||
| }, | ||
| { | ||
| title: 'Third action', | ||
| onClick: () => console.log('clicked on Third action') // eslint-disable-line no-console | ||
| } | ||
| ]; | ||
|
|
||
| const rows: DataViewTr[] = repositories.map(({ id, name, branches, prs, workspaces, lastCommit }) => [ | ||
| { id, cell: workspaces, props: { favorites: { isFavorited: true } } }, | ||
| { cell: <Button href='#' variant='link' isInline>{name}</Button> }, | ||
| branches, | ||
| prs, | ||
| workspaces, | ||
| lastCommit, | ||
| { cell: <ActionsColumn items={rowActions}/>, props: { isActionCell: true } }, | ||
| ]); | ||
|
|
||
| const columns: DataViewTh[] = [ | ||
| null, | ||
| 'Repositories', | ||
| { cell: <>Branches<ExclamationCircleIcon className='pf-v6-u-ml-sm' color="var(--pf-t--global--color--status--danger--default)"/></> }, | ||
| 'Pull requests', | ||
| { cell: 'Workspaces', props: { info: { tooltip: 'More information' } } }, | ||
| { cell: 'Last commit', props: { sort: { sortBy: {}, columnIndex: 4 } } }, | ||
| ]; | ||
|
|
||
| const ouiaId = 'TableDraggableExample'; | ||
|
|
||
| export const DraggableExample: FunctionComponent = () => ( | ||
| <DataViewTable | ||
| aria-label='Draggable repositories table' | ||
| ouiaId={ouiaId} | ||
| columns={columns} | ||
| rows={rows} | ||
| isDraggable | ||
| /> | ||
| ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
108 changes: 108 additions & 0 deletions
108
...rnfly-docs/content/extensions/data-view/examples/Table/DataViewTableExpandableExample.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,108 @@ | ||
| import { FunctionComponent } from 'react'; | ||
| import { DataViewTable, DataViewTr, DataViewTh, ExpandableContent } from '@patternfly/react-data-view/dist/dynamic/DataViewTable'; | ||
| import { ExclamationCircleIcon } from '@patternfly/react-icons'; | ||
| import { Button } from '@patternfly/react-core'; | ||
| import { ActionsColumn } from '@patternfly/react-table'; | ||
|
|
||
| interface Repository { | ||
| id: number; | ||
| name: string; | ||
| branches: string | null; | ||
| prs: string | null; | ||
| workspaces: string; | ||
| lastCommit: string; | ||
| } | ||
|
|
||
| const expandableContents: ExpandableContent[] = [ | ||
| // Row 1 - Repository one | ||
| { rowId: 1, columnId: 3, content: <div><strong>PR Details:</strong> 3 open PRs, 45 merged this month, avg review time: 2 days</div> }, | ||
| { rowId: 1, columnId: 5, content: <div><strong>Commit Info:</strong> Author: John Doe, Message: "Fix critical authentication bug", SHA: a1b2c3d</div> }, | ||
|
|
||
| // Row 2 - Repository two | ||
| { rowId: 2, columnId: 2, content: <div><strong>Branch Details:</strong> 8 active branches, main, staging, feature/api-v2, feature/dashboard</div> }, | ||
| { rowId: 2, columnId: 3, content: <div><strong>PR Details:</strong> 5 open PRs, 120 merged this month, avg review time: 1.5 days</div> }, | ||
| { rowId: 2, columnId: 4, content: <div><strong>Workspace Info:</strong> Development env, 3 active deployments, last updated 30 mins ago</div> }, | ||
| { rowId: 2, columnId: 5, content: <div><strong>Commit Info:</strong> Author: Jane Smith, Message: "Add new API endpoints", SHA: x9y8z7w</div> }, | ||
|
|
||
| // Row 3 - Repository three | ||
| { rowId: 3, columnId: 2, content: <div><strong>Branch Details:</strong> 12 active branches including main, develop, multiple feature branches</div> }, | ||
| { rowId: 3, columnId: 3, content: <div><strong>PR Details:</strong> 8 open PRs, 200 merged this month, avg review time: 3 days</div> }, | ||
| { rowId: 3, columnId: 4, content: <div><strong>Workspace Info:</strong> Staging env, 10 active deployments, last updated 1 day ago</div> }, | ||
| { rowId: 3, columnId: 5, content: <div><strong>Commit Info:</strong> Author: Bob Johnson, Message: "Refactor core modules", SHA: p0o9i8u</div> }, | ||
|
|
||
| // Row 4 - Repository four | ||
| { rowId: 4, columnId: 2, content: <div><strong>Branch Details:</strong> 6 active branches, focusing on microservices architecture</div> }, | ||
| { rowId: 4, columnId: 3, content: <div><strong>PR Details:</strong> 2 open PRs, 90 merged this month, avg review time: 2.5 days</div> }, | ||
| { rowId: 4, columnId: 4, content: <div><strong>Workspace Info:</strong> QA env, 7 active deployments, automated testing enabled</div> }, | ||
| { rowId: 4, columnId: 5, content: <div><strong>Commit Info:</strong> Author: Alice Williams, Message: "Update dependencies", SHA: m5n4b3v</div> }, | ||
|
|
||
| // Row 5 - Repository five | ||
| { rowId: 5, columnId: 2, content: <div><strong>Branch Details:</strong> 4 active branches, clean branch strategy</div> }, | ||
| { rowId: 5, columnId: 3, content: <div><strong>PR Details:</strong> 6 open PRs, 75 merged this month, avg review time: 1 day</div> }, | ||
| { rowId: 5, columnId: 4, content: <div><strong>Workspace Info:</strong> Pre-production env, CI/CD pipeline configured</div> }, | ||
| { rowId: 5, columnId: 5, content: <div><strong>Commit Info:</strong> Author: Charlie Brown, Message: "Implement dark mode", SHA: q2w3e4r</div> }, | ||
|
|
||
| // Row 6 - Repository six | ||
| { rowId: 6, columnId: 2, content: <div><strong>Branch Details:</strong> 15 active branches, complex branching model</div> }, | ||
| { rowId: 6, columnId: 3, content: <div><strong>PR Details:</strong> 10 open PRs, 250 merged this month, avg review time: 4 days</div> }, | ||
| { rowId: 6, columnId: 4, content: <div><strong>Workspace Info:</strong> Multi-region deployment, high availability setup</div> }, | ||
| { rowId: 6, columnId: 5, content: <div><strong>Commit Info:</strong> Author: David Lee, Message: "Security patches applied", SHA: t6y7u8i</div> }, | ||
| ]; | ||
|
|
||
| const repositories: Repository[] = [ | ||
| { id: 1, name: 'Repository one', branches: 'Branch one', prs: 'Pull request one', workspaces: 'Workspace one', lastCommit: 'Timestamp one' }, | ||
| { id: 2, name: 'Repository two', branches: 'Branch two', prs: 'Pull request two', workspaces: 'Workspace two', lastCommit: 'Timestamp two' }, | ||
| { id: 3, name: 'Repository three', branches: 'Branch three', prs: 'Pull request three', workspaces: 'Workspace three', lastCommit: 'Timestamp three' }, | ||
| { id: 4, name: 'Repository four', branches: 'Branch four', prs: 'Pull request four', workspaces: 'Workspace four', lastCommit: 'Timestamp four' }, | ||
| { id: 5, name: 'Repository five', branches: 'Branch five', prs: 'Pull request five', workspaces: 'Workspace five', lastCommit: 'Timestamp five' }, | ||
| { id: 6, name: 'Repository six', branches: 'Branch six', prs: 'Pull request six', workspaces: 'Workspace six', lastCommit: 'Timestamp six' } | ||
| ]; | ||
|
|
||
| const rowActions = [ | ||
| { | ||
| title: 'Some action', | ||
| onClick: () => console.log('clicked on Some action') // eslint-disable-line no-console | ||
| }, | ||
| { | ||
| title: <div>Another action</div>, | ||
| onClick: () => console.log('clicked on Another action') // eslint-disable-line no-console | ||
| }, | ||
| { | ||
| isSeparator: true | ||
| }, | ||
| { | ||
| title: 'Third action', | ||
| onClick: () => console.log('clicked on Third action') // eslint-disable-line no-console | ||
| } | ||
| ]; | ||
|
|
||
| const rows: DataViewTr[] = repositories.map(({ id, name, branches, prs, workspaces, lastCommit }) => [ | ||
| { | ||
| id, | ||
| cell: workspaces, | ||
| props: { | ||
| favorites: { isFavorited: true } | ||
| } | ||
| }, | ||
| { cell: <Button href='#' variant='link' isInline>{name}</Button> }, | ||
| branches, | ||
| prs, | ||
| workspaces, | ||
| lastCommit, | ||
| { cell: <ActionsColumn items={rowActions}/>, props: { isActionCell: true } }, | ||
| ]); | ||
|
|
||
| const columns: DataViewTh[] = [ | ||
| null, | ||
| 'Repositories', | ||
| { cell: <>Branches<ExclamationCircleIcon className='pf-v6-u-ml-sm' color="var(--pf-t--global--color--status--danger--default)"/></> }, | ||
| 'Pull requests', | ||
| { cell: 'Workspaces', props: { info: { tooltip: 'More information' }, isStickyColumn: true } }, | ||
| { cell: 'Last commit', props: { sort: { sortBy: {}, columnIndex: 4 } } }, | ||
| ]; | ||
|
|
||
| const ouiaId = 'TableExample'; | ||
|
|
||
| export const ExpandableExample: FunctionComponent = () => ( | ||
| <DataViewTable aria-label='Repositories table' ouiaId={ouiaId} columns={columns} rows={rows} expandedRows={expandableContents} isExpandable={true}/> | ||
| ); |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this change intended? I think it can be reverted.