Skip to content

Commit 5c29b01

Browse files
authored
Fix PageHeader type issues (#6896)
1 parent fc4987b commit 5c29b01

File tree

5 files changed

+34
-2
lines changed

5 files changed

+34
-2
lines changed

.changeset/nasty-seals-carry.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@primer/styled-react': patch
3+
'@primer/react': patch
4+
---
5+
6+
Fix typing issues in PageHeader exports.

packages/react/src/PageHeader/PageHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ const ContextAreaActions: React.FC<React.PropsWithChildren<ChildrenPropTypes>> =
191191
)
192192
}
193193

194-
type TitleAreaProps = {
194+
export type TitleAreaProps = {
195195
variant?: 'subtitle' | 'medium' | 'large' | ResponsiveValue<'subtitle' | 'medium' | 'large'>
196196
} & ChildrenPropTypes
197197
// PageHeader.TitleArea: The main title area of the page. Visible on all viewports.

packages/react/src/__tests__/__snapshots__/exports.test.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@ exports[`@primer/react > should not update exports without a semver change 1`] =
105105
"type OverlayProps",
106106
"PageHeader",
107107
"type PageHeaderActionsProps",
108+
"type PageHeaderChildrenPropTypes",
108109
"type PageHeaderProps",
110+
"type PageHeaderTitleAreaProps",
109111
"type PageHeaderTitleProps",
110112
"PageLayout",
111113
"type PageLayoutContentProps",

packages/react/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,8 @@ export type {
211211
PageHeaderProps,
212212
TitleProps as PageHeaderTitleProps,
213213
ActionsProps as PageHeaderActionsProps,
214+
TitleAreaProps as PageHeaderTitleAreaProps,
215+
ChildrenPropTypes as PageHeaderChildrenPropTypes,
214216
} from './PageHeader'
215217

216218
export {default as sx, merge} from './sx'

packages/styled-react/src/components/PageHeader.tsx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import {
33
type PageHeaderProps as PrimerPageHeaderProps,
44
type PageHeaderTitleProps as PrimerPageHeaderTitleProps,
55
type PageHeaderActionsProps as PrimerPageHeaderActionsProps,
6+
type PageHeaderTitleAreaProps as PrimerPageHeaderTitleAreaProps,
67
} from '@primer/react'
78
import styled from 'styled-components'
89
import {sx, type SxProp} from '../sx'
910
import type {ForwardRefComponent} from '../polymorphic'
1011
import {Box} from './Box'
12+
import type {PropsWithChildren} from 'react'
1113

1214
type PageHeaderProps = PrimerPageHeaderProps & SxProp
1315

@@ -35,7 +37,7 @@ function PageHeaderActions({sx, ...rest}: PageHeaderActionsProps) {
3537
return <Box {...rest} as={PrimerPageHeader.Actions} style={style} sx={sx} />
3638
}
3739

38-
type PageHeaderTitleProps = PrimerPageHeaderTitleProps & SxProp
40+
type PageHeaderTitleProps = PropsWithChildren<PrimerPageHeaderTitleProps> & SxProp
3941

4042
type CSSCustomProperties = {
4143
[key: `--${string}`]: string | number
@@ -63,9 +65,29 @@ function PageHeaderTitle({sx, ...rest}: PageHeaderTitleProps) {
6365
return <Box {...rest} as={PrimerPageHeader.Title} style={style} sx={sx} />
6466
}
6567

68+
type PageHeaderTitleAreaProps = PropsWithChildren<PrimerPageHeaderTitleAreaProps> & SxProp
69+
70+
const PageHeaderTitleArea: ForwardRefComponent<'div', PageHeaderTitleAreaProps> = styled(
71+
PrimerPageHeader.TitleArea,
72+
).withConfig<PageHeaderTitleAreaProps>({
73+
shouldForwardProp: prop => prop !== 'sx',
74+
})`
75+
${sx}
76+
`
77+
6678
const PageHeader = Object.assign(PageHeaderImpl, {
6779
Actions: PageHeaderActions,
6880
Title: PageHeaderTitle,
81+
TitleArea: PageHeaderTitleArea,
82+
ContextArea: PrimerPageHeader.ContextArea,
83+
ContextAreaActions: PrimerPageHeader.ContextAreaActions,
84+
TrailingVisual: PrimerPageHeader.TrailingVisual,
85+
Description: PrimerPageHeader.Description,
86+
ContextBar: PrimerPageHeader.ContextBar,
87+
LeadingAction: PrimerPageHeader.LeadingAction,
88+
Breadcrumbs: PrimerPageHeader.Breadcrumbs,
89+
LeadingVisual: PrimerPageHeader.LeadingVisual,
90+
TrailingAction: PrimerPageHeader.TrailingAction,
6991
})
7092

7193
export {PageHeader}

0 commit comments

Comments
 (0)