071faa482c
纳入 AGC Cargo workspace 的统一 rustfmt 检查与格式化入口 完成项目 TypeScript/Prettier 与 Rust 全量格式化 修复 Pingora expected executable 门禁的空白敏感误报 同步开发运维文档与 AGC skill pack 格式化忽略规则
44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
import type { ReactNode } from 'react';
|
|
|
|
type PlatformProfileSummaryHeaderProps = {
|
|
kicker: ReactNode;
|
|
title: ReactNode;
|
|
badge?: ReactNode;
|
|
className?: string;
|
|
titleClassName?: string;
|
|
badgeClassName?: string;
|
|
};
|
|
|
|
/**
|
|
* 个人中心白底副弹层标题摘要骨架。
|
|
* 只收口 kicker、标题和摘要 badge 的层次,不承接业务数值拼装。
|
|
*/
|
|
export function PlatformProfileSummaryHeader({
|
|
kicker,
|
|
title,
|
|
badge,
|
|
className,
|
|
titleClassName,
|
|
badgeClassName,
|
|
}: PlatformProfileSummaryHeaderProps) {
|
|
return (
|
|
<div className={['pr-10', className].filter(Boolean).join(' ')}>
|
|
<div className="text-[10px] font-black tracking-[0.22em] text-[#ff4056]">
|
|
{kicker}
|
|
</div>
|
|
<div
|
|
className={['mt-1 text-2xl font-black', titleClassName]
|
|
.filter(Boolean)
|
|
.join(' ')}
|
|
>
|
|
{title}
|
|
</div>
|
|
{badge ? (
|
|
<div className={['mt-3', badgeClassName].filter(Boolean).join(' ')}>
|
|
{badge}
|
|
</div>
|
|
) : null}
|
|
</div>
|
|
);
|
|
}
|