Skip to content

Commit 217aad3

Browse files
feat(Page): Added support for sidebar-less layout (#11760)
1 parent 9f062a3 commit 217aad3

File tree

8 files changed

+36
-15
lines changed

8 files changed

+36
-15
lines changed

packages/react-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"tslib": "^2.8.1"
5555
},
5656
"devDependencies": {
57-
"@patternfly/patternfly": "6.2.0-prerelease.28",
57+
"@patternfly/patternfly": "6.3.0-prerelease.6",
5858
"case-anything": "^3.1.2",
5959
"css": "^3.0.0",
6060
"fs-extra": "^11.3.0"

packages/react-core/src/components/Page/Page.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ export interface PageProps extends React.HTMLProps<HTMLDivElement> {
2222
className?: string;
2323
/** Masthead component (e.g. <Masthead />) */
2424
masthead?: React.ReactNode;
25-
/** Sidebar component for a side nav (e.g. <PageSidebar />) */
25+
/** Sidebar component for a side nav, recommended to be a PageSidebar. If set to null, the page grid layout
26+
* will render without a sidebar.
27+
*/
2628
sidebar?: React.ReactNode;
2729
/** Notification drawer component for an optional notification drawer (e.g. <NotificationDrawer />) */
2830
notificationDrawer?: React.ReactNode;
@@ -336,6 +338,7 @@ class Page extends Component<PageProps, PageState> {
336338
width !== null && height !== null && 'pf-m-resize-observer',
337339
width !== null && `pf-m-breakpoint-${getBreakpoint(width)}`,
338340
height !== null && `pf-m-height-breakpoint-${getVerticalBreakpoint(height)}`,
341+
sidebar === null && styles.modifiers.noSidebar,
339342
className
340343
)}
341344
>

packages/react-core/src/components/Page/__tests__/Page.test.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,24 @@ describe('Page', () => {
353353
expect(asFragment()).toMatchSnapshot();
354354
});
355355

356+
test(`Does not render with class ${styles.modifiers.noSidebar} by default`, () => {
357+
render(<Page data-testid="page"></Page>);
358+
359+
expect(screen.getByTestId('page')).not.toHaveClass(styles.modifiers.noSidebar);
360+
});
361+
362+
test(`Does not render with class ${styles.modifiers.noSidebar} when sidebar prop is passed with valid content`, () => {
363+
render(<Page data-testid="page" sidebar={<div>sidebar content</div>}></Page>);
364+
365+
expect(screen.getByTestId('page')).not.toHaveClass(styles.modifiers.noSidebar);
366+
});
367+
368+
test(`Renders with class ${styles.modifiers.noSidebar} when sidebar is set to null`, () => {
369+
render(<Page data-testid="page" sidebar={null}></Page>);
370+
371+
expect(screen.getByTestId('page')).toHaveClass(styles.modifiers.noSidebar);
372+
});
373+
356374
test(`Does not render with ${styles.modifiers.fill} or ${styles.modifiers.noFill} if isContentFilled is not passed`, () => {
357375
render(<Page {...props} role="main"></Page>);
358376

packages/react-docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"test:a11y": "patternfly-a11y --config patternfly-a11y.config"
2424
},
2525
"dependencies": {
26-
"@patternfly/patternfly": "6.2.0-prerelease.28",
26+
"@patternfly/patternfly": "6.3.0-prerelease.6",
2727
"@patternfly/react-charts": "workspace:^",
2828
"@patternfly/react-code-editor": "workspace:^",
2929
"@patternfly/react-core": "workspace:^",

packages/react-icons/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"@fortawesome/free-brands-svg-icons": "^5.15.4",
3434
"@fortawesome/free-regular-svg-icons": "^5.15.4",
3535
"@fortawesome/free-solid-svg-icons": "^5.15.4",
36-
"@patternfly/patternfly": "6.2.0-prerelease.28",
36+
"@patternfly/patternfly": "6.3.0-prerelease.6",
3737
"fs-extra": "^11.3.0",
3838
"tslib": "^2.8.1"
3939
},

packages/react-styles/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"clean": "rimraf dist css"
2020
},
2121
"devDependencies": {
22-
"@patternfly/patternfly": "6.2.0-prerelease.28",
22+
"@patternfly/patternfly": "6.3.0-prerelease.6",
2323
"change-case": "^5.4.4",
2424
"fs-extra": "^11.3.0"
2525
},

packages/react-tokens/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"clean": "rimraf dist"
3030
},
3131
"devDependencies": {
32-
"@patternfly/patternfly": "6.2.0-prerelease.28",
32+
"@patternfly/patternfly": "6.3.0-prerelease.6",
3333
"css": "^3.0.0",
3434
"fs-extra": "^11.3.0"
3535
}

yarn.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3632,10 +3632,10 @@ __metadata:
36323632
languageName: node
36333633
linkType: hard
36343634

3635-
"@patternfly/patternfly@npm:6.2.0-prerelease.28":
3636-
version: 6.2.0-prerelease.28
3637-
resolution: "@patternfly/patternfly@npm:6.2.0-prerelease.28"
3638-
checksum: 10c0/36a9acb6973471deb741f67922b13baf38258e5a1b400d67ec87caf76e48000b1188216d74f9bc5f348d6b33f7373858adb7ac8dd62887eb4d75b772abdab3db
3635+
"@patternfly/patternfly@npm:6.3.0-prerelease.6":
3636+
version: 6.3.0-prerelease.6
3637+
resolution: "@patternfly/patternfly@npm:6.3.0-prerelease.6"
3638+
checksum: 10c0/ceace4e78eaa5b5ea6da6cecf121a5d9c281d423be4a806332af8f90489f1ef80723762a3b3071e78653545ab89e7f9e773cffe215b6251c4eec34dee06dbcab
36393639
languageName: node
36403640
linkType: hard
36413641

@@ -3733,7 +3733,7 @@ __metadata:
37333733
version: 0.0.0-use.local
37343734
resolution: "@patternfly/react-core@workspace:packages/react-core"
37353735
dependencies:
3736-
"@patternfly/patternfly": "npm:6.2.0-prerelease.28"
3736+
"@patternfly/patternfly": "npm:6.3.0-prerelease.6"
37373737
"@patternfly/react-icons": "workspace:^"
37383738
"@patternfly/react-styles": "workspace:^"
37393739
"@patternfly/react-tokens": "workspace:^"
@@ -3754,7 +3754,7 @@ __metadata:
37543754
resolution: "@patternfly/react-docs@workspace:packages/react-docs"
37553755
dependencies:
37563756
"@patternfly/documentation-framework": "npm:^6.5.20"
3757-
"@patternfly/patternfly": "npm:6.2.0-prerelease.28"
3757+
"@patternfly/patternfly": "npm:6.3.0-prerelease.6"
37583758
"@patternfly/patternfly-a11y": "npm:5.1.0"
37593759
"@patternfly/react-charts": "workspace:^"
37603760
"@patternfly/react-code-editor": "workspace:^"
@@ -3794,7 +3794,7 @@ __metadata:
37943794
"@fortawesome/free-brands-svg-icons": "npm:^5.15.4"
37953795
"@fortawesome/free-regular-svg-icons": "npm:^5.15.4"
37963796
"@fortawesome/free-solid-svg-icons": "npm:^5.15.4"
3797-
"@patternfly/patternfly": "npm:6.2.0-prerelease.28"
3797+
"@patternfly/patternfly": "npm:6.3.0-prerelease.6"
37983798
fs-extra: "npm:^11.3.0"
37993799
tslib: "npm:^2.8.1"
38003800
peerDependencies:
@@ -3878,7 +3878,7 @@ __metadata:
38783878
version: 0.0.0-use.local
38793879
resolution: "@patternfly/react-styles@workspace:packages/react-styles"
38803880
dependencies:
3881-
"@patternfly/patternfly": "npm:6.2.0-prerelease.28"
3881+
"@patternfly/patternfly": "npm:6.3.0-prerelease.6"
38823882
change-case: "npm:^5.4.4"
38833883
fs-extra: "npm:^11.3.0"
38843884
languageName: unknown
@@ -3919,7 +3919,7 @@ __metadata:
39193919
version: 0.0.0-use.local
39203920
resolution: "@patternfly/react-tokens@workspace:packages/react-tokens"
39213921
dependencies:
3922-
"@patternfly/patternfly": "npm:6.2.0-prerelease.28"
3922+
"@patternfly/patternfly": "npm:6.3.0-prerelease.6"
39233923
css: "npm:^3.0.0"
39243924
fs-extra: "npm:^11.3.0"
39253925
languageName: unknown

0 commit comments

Comments
 (0)