收口个人中心邀请弹窗组件

迁移社区二维码卡和邀请信息卡到 PlatformSubpanel

迁移邀请弹窗简单空态到 PlatformEmptyState

迁移邀请弹窗小标题到 PlatformFieldLabel

补充邀请弹窗公共组件断言并更新文档和 Hermes
This commit is contained in:
2026-06-10 12:17:45 +08:00
parent c1905d52ac
commit 66b73f5a1d
4 changed files with 67 additions and 18 deletions

View File

@@ -3893,9 +3893,13 @@ function ProfileReferralModal({
{panel === 'community' ? (
<div className="mt-5 grid grid-cols-2 gap-3">
{COMMUNITY_QR_CODES.map((qrCode) => (
<div
<PlatformSubpanel
as="div"
key={qrCode.label}
className="rounded-xl border border-zinc-200 bg-zinc-50 p-2.5 text-center"
surface="flat"
radius="xs"
padding="none"
className="p-2.5 text-center"
>
<div className="aspect-square overflow-hidden rounded-lg border border-zinc-200 bg-white p-1.5">
<img
@@ -3909,7 +3913,7 @@ function ProfileReferralModal({
<div className="mt-2 text-sm font-bold text-zinc-700">
{qrCode.label}
</div>
</div>
</PlatformSubpanel>
))}
</div>
) : panel === 'redeem' ? (
@@ -3919,9 +3923,14 @@ function ProfileReferralModal({
<div className="h-11 animate-pulse rounded-xl bg-zinc-100" />
</div>
) : center?.hasRedeemedCode ? (
<div className="mt-5 rounded-xl bg-zinc-50 px-4 py-5 text-center text-sm font-semibold text-zinc-600">
<PlatformEmptyState
surface="subpanel"
size="inline"
tone="base"
className="mt-5"
>
</div>
</PlatformEmptyState>
) : (
<form
className="mt-5 space-y-3"
@@ -3961,14 +3970,23 @@ function ProfileReferralModal({
</div>
) : (
<div className="mt-5 space-y-3">
<div className="rounded-xl bg-zinc-50 px-4 py-4 text-center">
<div className="text-[11px] font-bold text-zinc-500">
<PlatformSubpanel
as="div"
surface="flat"
radius="xs"
padding="md"
className="text-center"
>
<PlatformFieldLabel
variant="section"
className="block text-[11px] text-zinc-500"
>
</div>
</PlatformFieldLabel>
<div className="mt-1 text-3xl font-black tracking-[0.16em] text-[#ff4056]">
{center?.inviteCode ?? '--------'}
</div>
</div>
</PlatformSubpanel>
<div className="rounded-xl border border-amber-200 bg-amber-50 px-3.5 py-3 text-sm font-semibold leading-6 text-amber-900">
<div>
{`邀请一个用户注册,双方都可以获得${center?.rewardPoints ?? 30}泥点。`}
@@ -3988,14 +4006,29 @@ function ProfileReferralModal({
actionFullWidth
className="gap-2 rounded-xl"
/>
<div className="rounded-xl bg-zinc-50 px-3.5 py-3">
<div className="text-xs font-black text-zinc-900"></div>
<PlatformSubpanel
as="div"
surface="flat"
radius="xs"
padding="none"
className="px-3.5 py-3"
>
<PlatformFieldLabel
variant="section"
className="block text-zinc-900"
>
</PlatformFieldLabel>
{center?.invitedUsers?.length ? (
<div className="mt-3 max-h-44 space-y-2 overflow-y-auto pr-1">
{center.invitedUsers.map((user) => (
<div
<PlatformSubpanel
as="div"
key={`${user.userId}-${user.boundAt}`}
className="flex items-center gap-3 rounded-lg bg-white px-2.5 py-2"
surface="soft"
radius="xs"
padding="none"
className="flex items-center gap-3 px-2.5 py-2"
>
<ProfileReferralUserAvatar
name={user.displayName}
@@ -4006,15 +4039,19 @@ function ProfileReferralModal({
{user.displayName || '玩家'}
</div>
</div>
</div>
</PlatformSubpanel>
))}
</div>
) : (
<div className="mt-3 rounded-lg bg-white px-3 py-3 text-center text-xs font-semibold text-zinc-500">
<PlatformEmptyState
surface="subpanel"
size="compact"
className="mt-3 text-center text-xs font-semibold leading-normal"
>
</div>
</PlatformEmptyState>
)}
</div>
</PlatformSubpanel>
</div>
)}