Files
dukang/packages/shared-ui/src/PageHeader.tsx
T
2026-08-04 21:38:49 +08:00

37 lines
1.0 KiB
TypeScript

type PageHeaderProps = {
title: string;
onBack?: () => void;
backLabel?: string;
right?: React.ReactNode;
/** 是否展示居中标题;H5 微信内默认隐藏,避免与系统标题栏重复 */
showTitle?: boolean;
};
export default function PageHeader({
title,
onBack,
backLabel = '←',
right,
showTitle = false,
}: PageHeaderProps) {
return (
<header className="page-header" aria-label={title}>
<div className="page-header-side">
{onBack ? (
<button type="button" className="back-btn" onClick={onBack} aria-label="返回">
{backLabel}
</button>
) : (
<span className="page-header-spacer" />
)}
</div>
{showTitle ? (
<div className="app-page-title page-header-title">{title}</div>
) : (
<div className="page-header-title page-header-title--spacer" aria-hidden="true" />
)}
<div className="page-header-side page-header-side--right">{right ?? <span className="page-header-spacer" />}</div>
</header>
);
}