fix(public): distinguish unavailable data from empty results and missing pages
CI / check (push) Successful in 56s
CI / deploy (push) Successful in 1m30s
CI / publish-container (push) Successful in 44s

This commit is contained in:
Simo committed 2026-09-11 00:39:53 +02:00
1 parent db4acbb46e
commit 445ef13846
16 files changed
+608 -169

No files matched your search

+22 -5
View File
@@ -267,7 +267,11 @@ export default async function MePage({
actionLabel={t("allFriends")}
bodyClassName="p-5"
>
{onlineFriends.length === 0 ? (
{data.friendsUnavailable ? (
<p role="status" className="muted">
{t("loadError")}
</p>
) : onlineFriends.length === 0 ? (
<p className="muted">{t("noOnlineFriends")}</p>
) : (
<div className={styles.friends}>
@@ -324,13 +328,22 @@ export default async function MePage({
{[
{
label: t("achievements"),
value: format.number(userSettings?.achievementScore ?? 0),
value: data.userSettingsUnavailable
? "—"
: format.number(userSettings?.achievementScore ?? 0),
},
{
label: t("respects"),
value: format.number(userSettings?.respectsReceived ?? 0),
value: data.userSettingsUnavailable
? "—"
: format.number(userSettings?.respectsReceived ?? 0),
},
{
label: t("friends"),
value: data.friendsUnavailable
? "—"
: format.number(friendCount),
},
{ label: t("friends"), value: format.number(friendCount) },
{ label: t("lastLogin"), value: date(user.lastLogin) },
].map((stat) => (
<div key={stat.label}>
@@ -400,7 +413,11 @@ export default async function MePage({
</details>
</SurfaceCard>
<SurfaceCard title={t("badges")} bodyClassName="p-5">
{badges.length === 0 ? (
{data.badgesUnavailable ? (
<p role="status" className="muted">
{t("loadError")}
</p>
) : badges.length === 0 ? (
<p className="muted">{t("noBadges")}</p>
) : (
<div className={styles.badges}>