Skip to content

Commit 36e90d1

Browse files
authored
Merge pull request #8766 from Couchers-org/frontend/feature/hide-moderator-badge
Web: Hide moderator badge from the badge explorer behind show_moderator_badge
2 parents 429f72a + 5453fc7 commit 36e90d1

2 files changed

Lines changed: 19 additions & 7 deletions

File tree

app/web/features/badges/BadgesPage.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
import CenteredSpinner from "components/CenteredSpinner/CenteredSpinner";
1010
import HtmlMeta from "components/HtmlMeta";
1111
import PageTitle from "components/PageTitle";
12+
import { useFeatureValue } from "experimentation";
1213
import Badge from "features/badges/Badge";
1314
import { useBadges } from "features/badges/hooks";
1415
import { useTranslation } from "i18n";
@@ -62,6 +63,12 @@ export default function BadgesPage({ badgeId = undefined }: BadgesPageProps) {
6263

6364
const isMobile = useMediaQuery(theme.breakpoints.down("md"));
6465

66+
// the catalog still lists the moderator badge; the award job stops granting it once
67+
// show_moderator_badge is off, so hide it from the explorer to match.
68+
const showModeratorBadge = useFeatureValue("show_moderator_badge", true);
69+
const isHiddenBadge = (badgeId: string) =>
70+
badgeId === "moderator" && !showModeratorBadge;
71+
6572
return (
6673
<>
6774
<HtmlMeta title={t("global:nav.badges")} />
@@ -73,11 +80,13 @@ export default function BadgesPage({ badgeId = undefined }: BadgesPageProps) {
7380
<ParentFlexDiv>
7481
<div>
7582
{badges &&
76-
Object.values(badges).map((badge) => (
77-
<BadgeListItem key={badge.id}>
78-
<Badge badge={badge} />
79-
</BadgeListItem>
80-
))}
83+
Object.values(badges)
84+
.filter((badge) => !isHiddenBadge(badge.id))
85+
.map((badge) => (
86+
<BadgeListItem key={badge.id}>
87+
<Badge badge={badge} />
88+
</BadgeListItem>
89+
))}
8190
</div>
8291
<StyledDivider
8392
orientation={isMobile ? "horizontal" : "vertical"}
@@ -87,7 +96,7 @@ export default function BadgesPage({ badgeId = undefined }: BadgesPageProps) {
8796
<ContentDiv>
8897
{isBadgesLoading ? (
8998
<CenteredSpinner />
90-
) : badges && badgeId in badges ? (
99+
) : badges && badgeId in badges && !isHiddenBadge(badgeId) ? (
91100
<>
92101
<FlexDiv>
93102
<Badge badge={badges[badgeId]} />

app/web/features/profile/view/Badges.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ export const Badges = ({ user }: Props) => {
2121
return (
2222
<StyledContainer>
2323
{(user.badgesList || []).map((badgeId) => {
24-
const badge = (badges || {})[badgeId];
24+
const badge = badges[badgeId];
25+
if (!badge) {
26+
return null;
27+
}
2528
return <Badge key={badge.id} badge={badge} />;
2629
})}
2730
</StyledContainer>

0 commit comments

Comments
 (0)