Skip to content

Commit 7ad384d

Browse files
authored
Merge pull request #42 from fhlavac/details-page
DetailsPage cleanup
2 parents 6e3df28 + f154f53 commit 7ad384d

27 files changed

Lines changed: 324 additions & 633 deletions

packages/module/patternfly-docs/content/extensions/component-groups/examples/DetailsPage/ActionButtonsExample.tsx

Lines changed: 0 additions & 21 deletions
This file was deleted.

packages/module/patternfly-docs/content/extensions/component-groups/examples/DetailsPage/ActionMenuExample.tsx

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
1+
/* eslint-disable no-console */
12
import React from 'react';
23
import { ActionMenu } from '@patternfly/react-component-groups';
34

4-
export const BasicExample: React.FC = () => (
5+
export const BasicExample: React.FunctionComponent = () => (
56
<ActionMenu
67
actions={[
78
{
89
children: 'Edit resource',
9-
itemID: 'action-menu-example-1',
10-
cta: {
11-
// eslint-disable-next-line no-console
12-
callback: () => console.log('Edit resource clicked'),
13-
},
10+
itemId: 'action-menu-example-1',
11+
onClick: () => console.log('Edit resource clicked'),
1412
},
1513
{
1614
children: 'Delete resource',
17-
itemID: 'action-menu-example-2',
18-
cta: {
19-
// eslint-disable-next-line no-console
20-
callback: () => console.log('Delete resource clicked'),
21-
},
15+
itemId: 'action-menu-example-2',
16+
onClick: () => console.log('Delete resource clicked'),
2217
isDisabled: true,
2318
},
2419
]}
Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* eslint-disable no-console */
12
import React from 'react';
23
import { ActionMenu } from '@patternfly/react-component-groups';
34

@@ -6,50 +7,38 @@ export const BasicExample: React.FunctionComponent = () => (
67
groupedActions={[
78
{
89
groupId: 'group1',
9-
groupActions: [
10+
actions: [
1011
{
1112
children: 'Edit resource',
12-
itemID: 'action-menu-grouped-group-1-example-1',
13-
cta: {
14-
// eslint-disable-next-line no-console
15-
callback: () => console.log('Edit resource clicked'),
16-
},
13+
itemId: 'action-menu-grouped-group-1-example-1',
14+
onClick: () => console.log('Edit resource clicked')
1715
},
1816
{
1917
children: 'Delete resource',
20-
itemID: 'action-menu-grouped-group-1-example-2',
21-
cta: {
22-
// eslint-disable-next-line no-console
23-
callback: () => console.log('Delete resource clicked'),
24-
},
18+
itemId: 'action-menu-grouped-group-1-example-2',
19+
onClick: () => console.log('Delete resource clicked'),
2520
isDisabled: true,
2621
},
2722
],
2823
},
2924
{
3025
groupId: 'group2',
3126
label: 'Links',
32-
groupActions: [
27+
actions: [
3328
{
3429
children: 'GitHub',
35-
itemID: 'action-menu-grouped-group-2-example-1',
36-
cta: {
37-
href: 'https://github.com/',
38-
external: true,
39-
},
30+
itemId: 'action-menu-grouped-group-2-example-1',
31+
onClick: () => console.log('GitHub clicked'),
4032
},
4133
{
4234
children: 'Link',
43-
itemID: 'action-menu-grouped-group-2-example-2',
44-
cta: {
45-
href: '/#',
46-
},
35+
itemId: 'action-menu-grouped-group-2-example-2',
36+
onClick: () => console.log('Link clicked'),
4737
description: 'Description of link',
4838
},
4939
],
5040
},
5141
]}
52-
displayLabelBeforeIcon
5342
id='action-menu-grouped-example'
5443
/>
5544
);

packages/module/patternfly-docs/content/extensions/component-groups/examples/DetailsPage/BreadcrumbsExample.tsx

Lines changed: 0 additions & 14 deletions
This file was deleted.

packages/module/patternfly-docs/content/extensions/component-groups/examples/DetailsPage/DetailsPage.md

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ propComponents: [
1515
'DetailsPageHeader',
1616
'PageHeading',
1717
# 'PageHeadingLabel', # No output --> is a type and not an interface
18-
'Breadcrumbs',
19-
# 'Breadcrumb', # No output --> is a type and not an interface
20-
'ActionButtons',
2118
'ActionButton', # Incomplete output --> see https://github.com/patternfly/patternfly-org/issues/3423
2219
# 'ActionCTA', # No output --> is a type and not an interface
2320
'ActionMenu',
@@ -29,9 +26,7 @@ propComponents: [
2926
beta: true
3027
---
3128

32-
import { ActionButtons } from '@patternfly/react-component-groups';
3329
import { ActionMenu } from '@patternfly/react-component-groups';
34-
import { Breadcrumbs } from '@patternfly/react-component-groups';
3530
import { BrowserRouter as Router } from 'react-router-dom';
3631
import { CheckCircleIcon } from '@patternfly/react-icons';
3732
import HorizontalNav from '@patternfly/react-component-groups/dist/dynamic/HorizontalNav';
@@ -60,24 +55,6 @@ The `pageHeader` for a details page contains the `breadcrumbs`, `pageHeading`, a
6055

6156
```
6257

63-
### Details page breadcrumbs
64-
65-
You can specify the `children` of the details page `breadcrumbs` and the pages that they point to.
66-
67-
```js file="./BreadcrumbsExample.tsx"
68-
69-
```
70-
71-
### Details page action buttons
72-
73-
The action buttons in a details page header can be customized to be any [button](/components/button) variant.
74-
75-
Include a [`tooltip`](/components/tooltip/) as appropriate.
76-
77-
```js file="./ActionButtonsExample.tsx"
78-
79-
```
80-
8158
### Details page action menu
8259

8360
The details page action menu contains multiple actions that users can take.

packages/module/patternfly-docs/content/extensions/component-groups/examples/DetailsPage/DetailsPageExample.tsx

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
1+
/* eslint-disable no-console */
12
import React from 'react';
23
import { BrowserRouter as Router } from 'react-router-dom';
34
import { CheckCircleIcon } from '@patternfly/react-icons';
5+
import { Breadcrumb, BreadcrumbItem } from '@patternfly/react-core';
46
import DetailsPage from '@patternfly/react-component-groups/dist/dynamic/DetailsPage';
57

68
export const BasicExample: React.FunctionComponent = () => (
79
<Router>
810
<DetailsPage
911
breadcrumbs={
10-
[
11-
{ children: 'Resources', to: '/resources' },
12-
{ children: 'Resource details', to: '/resources/example-resource' },
13-
]
12+
<Breadcrumb>
13+
<BreadcrumbItem
14+
to="/resources"
15+
key="resources"
16+
>
17+
Resources
18+
</BreadcrumbItem>
19+
<BreadcrumbItem
20+
isActive
21+
to="/resources/example-resource"
22+
key="resources-example"
23+
>
24+
Resource details
25+
</BreadcrumbItem>
26+
</Breadcrumb>
1427
}
1528
pageHeading={{
1629
title: 'example-resource',
@@ -32,19 +45,13 @@ export const BasicExample: React.FunctionComponent = () => (
3245
actions: [
3346
{
3447
children: 'Edit resource',
35-
itemID: 'details-page-action-menu-example-1',
36-
cta: {
37-
// eslint-disable-next-line no-console
38-
callback: () => console.log('Edit resource clicked'),
39-
},
48+
itemId: 'details-page-action-menu-example-1',
49+
onClick: () => console.log('Edit resource clicked')
4050
},
4151
{
4252
children: 'Delete resource',
43-
itemID: 'details-page-action-menu-example-2',
44-
cta: {
45-
// eslint-disable-next-line no-console
46-
callback: () => console.log('Delete resource clicked'),
47-
},
53+
itemId: 'details-page-action-menu-example-2',
54+
onClick: () => console.log('Delete resource clicked'),
4855
isDisabled: true,
4956
},
5057
],

packages/module/patternfly-docs/content/extensions/component-groups/examples/DetailsPage/DetailsPageHeaderExample.tsx

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
1+
/* eslint-disable no-console */
12
import React from 'react';
23
import { BrowserRouter as Router } from 'react-router-dom';
34
import { CheckCircleIcon } from '@patternfly/react-icons';
45
import DetailsPageHeader from '@patternfly/react-component-groups/dist/dynamic/DetailsPageHeader';
6+
import { Breadcrumb, BreadcrumbItem } from '@patternfly/react-core';
57

68
export const BasicExample: React.FunctionComponent = () => (
79
<Router>
810
<DetailsPageHeader
9-
breadcrumbs={
10-
[
11-
{ children: 'Resources', to: '/resources' },
12-
{ children: 'Resource details', to: '/resources/example-resource' },
13-
]
11+
breadcrumbs={
12+
<Breadcrumb>
13+
<BreadcrumbItem
14+
to="/resources"
15+
key="resources"
16+
>
17+
Resources
18+
</BreadcrumbItem>
19+
<BreadcrumbItem
20+
isActive
21+
to="/resources/example-resource"
22+
key="resources-example"
23+
>
24+
Resource details
25+
</BreadcrumbItem>
26+
</Breadcrumb>
1427
}
1528
pageHeading={{
1629
title: 'example-resource',
@@ -32,19 +45,13 @@ export const BasicExample: React.FunctionComponent = () => (
3245
actions: [
3346
{
3447
children: 'Edit resource',
35-
itemID: 'details-page-header-action-menu-example-1',
36-
cta: {
37-
// eslint-disable-next-line no-console
38-
callback: () => console.log('Edit resource clicked'),
39-
},
48+
itemId: 'details-page-header-action-menu-example-1',
49+
onClick: () => console.log('Edit resource clicked'),
4050
},
4151
{
4252
children: 'Delete resource',
43-
itemID: 'details-page-header-action-menu-example-2',
44-
cta: {
45-
// eslint-disable-next-line no-console
46-
callback: () => console.log('Delete resource clicked'),
47-
},
53+
itemId: 'details-page-header-action-menu-example-2',
54+
onClick: () => console.log('Delete resource clicked'),
4855
isDisabled: true,
4956
},
5057
],
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import InvalidObject from '@patternfly/react-component-groups/dist/dynamic/InvalidObject';
22
import React from 'react';
33

4-
const InvalidObjectExample: React.FunctionComponent = () => <InvalidObject />;
5-
6-
export default InvalidObjectExample;
4+
export const BasicExample: React.FunctionComponent = () => <InvalidObject />;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { Button, ButtonProps, Tooltip, TooltipProps } from '@patternfly/react-core';
2+
import React from 'react';
3+
4+
export interface ActionButtonProps extends Omit<ButtonProps, 'innerRef'> {
5+
/** Content for the action button tooltip */
6+
tooltip?: React.ReactNode;
7+
/** Tooltip props */
8+
tooltipProps?: Omit<TooltipProps, 'triggerRef'>;
9+
};
10+
11+
export const ActionButton: React.FunctionComponent<ActionButtonProps> = ({
12+
tooltipProps,
13+
...buttonProps
14+
}: ActionButtonProps) => {
15+
const tooltipRef = React.useRef();
16+
return (
17+
<>
18+
<Button
19+
aria-describedby={tooltipProps?.id}
20+
innerRef={tooltipRef}
21+
{...buttonProps}
22+
/>
23+
{tooltipProps ? <Tooltip {...tooltipProps} triggerRef={tooltipRef} /> : null}
24+
</>
25+
);
26+
};
27+
28+
export default ActionButton;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { default } from './ActionButton';
2+
export * from './ActionButton';

0 commit comments

Comments
 (0)