Skip to content

Commit f8b214b

Browse files
committed
fix linting and add headingLevel overrides to relevant components
1 parent 7aac785 commit f8b214b

File tree

8 files changed

+38
-18
lines changed

8 files changed

+38
-18
lines changed

packages/module/patternfly-docs/content/extensions/component-groups/examples/ErrorState/ErrorStateExtraProps.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ import ErrorState from "@patternfly/react-component-groups/dist/dynamic/ErrorSta
33
import { PathMissingIcon } from '@patternfly/react-icons/dist/dynamic/icons/path-missing-icon';
44

55
export const BasicExample: React.FunctionComponent = () => (
6-
<ErrorState
7-
titleText='Sample error title'
8-
bodyText='Sample error description'
9-
headingLevel='h2'
10-
icon={PathMissingIcon}
11-
status="none"
12-
customFooter="Any other details in a custom footer."
13-
/>
6+
<ErrorState
7+
titleText='Sample error title'
8+
bodyText='Sample error description'
9+
headingLevel='h2'
10+
icon={PathMissingIcon}
11+
status="none"
12+
customFooter="Any other details in a custom footer."
13+
/>
1414
);

packages/module/src/ErrorBoundary/ErrorBoundary.tsx

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ export interface ErrorBoundaryProps {
2929
children?: React.ReactNode;
3030
/** Custom OUIA ID */
3131
ouiaId?: string | number;
32+
/** The heading level to use on the header title, default is h1 */
33+
headerTitleHeadingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
34+
/** The heading level to use on the error title, default is h2 */
35+
errorTitleHeadingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
3236
}
3337

3438
export interface ErrorBoundaryState {
@@ -45,9 +49,20 @@ interface ErrorPageProps extends ErrorBoundaryProps {
4549
classes: Record<string | number | symbol, string>;
4650
}
4751

48-
export const ErrorBoundary: React.FunctionComponent<ErrorBoundaryProps> = (props: ErrorBoundaryProps) => {
52+
export const ErrorBoundary: React.FunctionComponent<ErrorBoundaryProps> = ({
53+
headerTitleHeadingLevel = "h1",
54+
errorTitleHeadingLevel = "h2",
55+
...props
56+
}: ErrorBoundaryProps) => {
4957
const classes = useStyles();
50-
return <ErrorBoundaryContent classes={classes} {...props} />
58+
return (
59+
<ErrorBoundaryContent
60+
classes={classes}
61+
headerTitleHeadingLevel={headerTitleHeadingLevel}
62+
errorTitleHeadingLevel={errorTitleHeadingLevel}
63+
{...props}
64+
/>
65+
);
5166
}
5267

5368
// As of time of writing, React only supports error boundaries in class components
@@ -82,7 +97,7 @@ class ErrorBoundaryContent extends React.Component<ErrorPageProps, ErrorBoundary
8297
}
8398

8499
render() {
85-
const { ouiaId = 'ErrorBoundary', ...props } = this.props;
100+
const { ouiaId = 'ErrorBoundary', errorTitleHeadingLevel, headerTitleHeadingLevel, ...props } = this.props;
86101

87102
if (this.state.hasError) {
88103
if (this.props.silent) {
@@ -91,9 +106,10 @@ class ErrorBoundaryContent extends React.Component<ErrorPageProps, ErrorBoundary
91106

92107
return (
93108
<div data-ouia-component-id={ouiaId}>
94-
{props?.headerTitle && <Title headingLevel="h1" size="2xl" ouiaId={`${ouiaId}-title`}>{props.headerTitle}</Title>}
109+
{props?.headerTitle && <Title headingLevel={headerTitleHeadingLevel || 'h1'} size="2xl" ouiaId={`${ouiaId}-title`}>{props.headerTitle}</Title>}
95110
<ErrorState
96111
titleText={props.errorTitle}
112+
headingLevel={errorTitleHeadingLevel}
97113
bodyText={
98114
<>
99115
<span>{props.errorDescription}</span>

packages/module/src/ErrorState/ErrorState.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as React from 'react';
22
import ErrorState from './ErrorState';
3-
import { getByRole, render, screen } from '@testing-library/react';
3+
import { render, screen } from '@testing-library/react';
44
import { Button } from '@patternfly/react-core';
55

66
describe('ErrorState component', () => {

packages/module/src/ErrorState/ErrorState.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const ErrorState: React.FunctionComponent<ErrorStateProps> = ({
4949
return (
5050
<EmptyState
5151
headingLevel={headingLevel}
52-
{...(status !== 'none' && {status: status} )}
52+
{...(status !== 'none' && { status } )}
5353
variant={variant}
5454
titleText={titleText}
5555
data-ouia-component-id={ouiaId}

packages/module/src/Maintenance/Maintenance.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const Maintenance: React.FunctionComponent<MaintenanceProps> = ({
3636
redirectLinkText = 'status.redhat.com.',
3737
customFooter = 'For more information please visit',
3838
ouiaId = 'Maintenance',
39+
headingLevel = 'h5',
3940
...props
4041
}: MaintenanceProps) => {
4142
let formattedBodyText = bodyText;
@@ -44,7 +45,7 @@ const Maintenance: React.FunctionComponent<MaintenanceProps> = ({
4445
}
4546

4647
return (
47-
<EmptyState headingLevel="h5" status={EmptyStateStatus.danger} icon={HourglassHalfIcon} titleText={titleText} variant={EmptyStateVariant.lg} data-ouia-component-id={ouiaId} {...props}>
48+
<EmptyState headingLevel={headingLevel} status={EmptyStateStatus.danger} icon={HourglassHalfIcon} titleText={titleText} variant={EmptyStateVariant.lg} data-ouia-component-id={ouiaId} {...props}>
4849
<EmptyStateBody data-ouia-component-id={`${ouiaId}-body`}>
4950
{bodyText ? formattedBodyText : defaultBodyText}
5051
</EmptyStateBody>

packages/module/src/MissingPage/MissingPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ export const MissingPage: React.FunctionComponent<MissingPageProps> = ({
2222
titleText = 'We lost that page',
2323
bodyText = "Let's find you a new one. Try a new search or return home.",
2424
ouiaId = "MissingPage",
25+
headingLevel = 'h1',
2526
...props
2627
}: MissingPageProps) => (
27-
<EmptyState headingLevel='h1' icon={NotFoundIcon} variant={EmptyStateVariant.full} data-ouia-component-id={ouiaId} {...props} titleText={titleText}>
28+
<EmptyState headingLevel={headingLevel} icon={NotFoundIcon} variant={EmptyStateVariant.full} data-ouia-component-id={ouiaId} {...props} titleText={titleText}>
2829
<EmptyStateBody data-ouia-component-id={`${ouiaId}-body`}>{bodyText}</EmptyStateBody>
2930
<EmptyStateFooter data-ouia-component-id={`${ouiaId}-footer`}>
3031
<Button variant="link" component="a" href={toHomePageUrl} ouiaId={`${ouiaId}-home-button`}>

packages/module/src/UnauthorizedAccess/UnauthorizedAccess.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,10 @@ const UnauthorizedAccess: React.FunctionComponent<UnauthorizedAccessProps> = ({
4343
showReturnButton = true,
4444
className,
4545
ouiaId = 'UnauthorizedAccess',
46+
headingLevel = 'h5',
4647
...props
4748
}: UnauthorizedAccessProps) => (
48-
<EmptyState headingLevel="h5" icon={Icon} variant={EmptyStateVariant.full} className={className} data-ouia-component-id={ouiaId} {...props} titleText={titleText}>
49+
<EmptyState headingLevel={headingLevel} icon={Icon} variant={EmptyStateVariant.full} className={className} data-ouia-component-id={ouiaId} {...props} titleText={titleText}>
4950
<EmptyStateBody data-ouia-component-id={`${ouiaId}-body`}>{bodyText}</EmptyStateBody>
5051
<EmptyStateFooter data-ouia-component-id={`${ouiaId}-footer`}>
5152
{primaryAction ? <EmptyStateActions>{primaryAction}</EmptyStateActions> : null}

packages/module/src/UnavailableContent/UnavailableContent.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ const UnavailableContent: React.FunctionComponent<UnavailableContentProps> = ({
2222
titleText = 'This page is temporarily unavailable',
2323
bodyText = 'Try refreshing the page. If the problem persists, contact your organization administrator or visit our status page for known outages.',
2424
ouiaId = 'UnavailableContent',
25+
headingLevel = "h5",
2526
...props
2627
}: UnavailableContentProps) => (
27-
<EmptyState headingLevel="h5" status={EmptyStateStatus.danger} icon={ExclamationCircleIcon} titleText={titleText} variant={EmptyStateVariant.lg} data-ouia-component-id={ouiaId} {...props}>
28+
<EmptyState headingLevel={headingLevel} status={EmptyStateStatus.danger} icon={ExclamationCircleIcon} titleText={titleText} variant={EmptyStateVariant.lg} data-ouia-component-id={ouiaId} {...props}>
2829
<EmptyStateBody data-ouia-component-id={`${ouiaId}-body`}>
2930
{bodyText}
3031
</EmptyStateBody>

0 commit comments

Comments
 (0)