11import type { Location , Pathname } from 'history'
2- import type { SxProp } from '../sx'
32import React from 'react'
43import { clsx } from 'clsx'
54import classes from './Header.module.css'
65import type { ForwardRefComponent as PolymorphicForwardRefComponent } from '../utils/polymorphic'
7- import { BoxWithFallback } from '../internal/components/BoxWithFallback'
86
9- export type HeaderProps = React . ComponentProps < 'header' > & SxProp & { as ?: React . ElementType }
10- export type HeaderItemProps = React . ComponentProps < 'div' > & SxProp & { full ?: boolean }
11- export type HeaderLinkProps = React . ComponentProps < 'a' > & SxProp & { to ?: Location | Pathname ; as ?: React . ElementType }
7+ export type HeaderProps = React . ComponentProps < 'header' > & { as ?: React . ElementType }
8+ export type HeaderItemProps = React . ComponentProps < 'div' > & { full ?: boolean }
9+ export type HeaderLinkProps = React . ComponentProps < 'a' > & { to ?: Location | Pathname ; as ?: React . ElementType }
1210
1311const Header = React . forwardRef < HTMLElement , HeaderProps > ( function Header (
14- { children , className , as = 'header' , ...rest } ,
12+ { as : BaseComponent = 'header' , children , className , ...rest } ,
1513 forwardRef ,
1614) {
1715 return (
18- < BoxWithFallback as = { as } ref = { forwardRef } className = { clsx ( className , classes . Header ) } { ...rest } >
16+ < BaseComponent ref = { forwardRef } className = { clsx ( className , classes . Header ) } { ...rest } >
1917 { children }
20- </ BoxWithFallback >
18+ </ BaseComponent >
2119 )
2220} ) as PolymorphicForwardRefComponent < 'header' , HeaderProps >
2321
@@ -28,22 +26,22 @@ const HeaderItem = React.forwardRef<HTMLDivElement, HeaderItemProps>(function He
2826 forwardRef ,
2927) {
3028 return (
31- < BoxWithFallback ref = { forwardRef } className = { clsx ( className , classes . HeaderItem ) } data-full = { full } { ...rest } >
29+ < div ref = { forwardRef } className = { clsx ( className , classes . HeaderItem ) } data-full = { full } { ...rest } >
3230 { children }
33- </ BoxWithFallback >
31+ </ div >
3432 )
3533} )
3634
3735HeaderItem . displayName = 'Header.Item'
3836
3937const HeaderLink = React . forwardRef < HTMLAnchorElement , HeaderLinkProps > ( function HeaderLink (
40- { children, className, as = 'a' , ...rest } ,
38+ { children, className, as : BaseComponent = 'a' , ...rest } ,
4139 forwardRef ,
4240) {
4341 return (
44- < BoxWithFallback as = { as } ref = { forwardRef } className = { clsx ( className , classes . HeaderLink ) } { ...rest } >
42+ < BaseComponent ref = { forwardRef } className = { clsx ( className , classes . HeaderLink ) } { ...rest } >
4543 { children }
46- </ BoxWithFallback >
44+ </ BaseComponent >
4745 )
4846} )
4947
0 commit comments