From c0a91f63eeb9bd2f3c9f9aaad2b338464e0daa19 Mon Sep 17 00:00:00 2001 From: syntaxsuuvam-spec Date: Sun, 11 Oct 2026 07:44:38 +0545 Subject: [PATCH] feat(ui): extract shared reputation tier mapping --- src/components/reputation/tier.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/components/reputation/tier.ts diff --git a/src/components/reputation/tier.ts b/src/components/reputation/tier.ts new file mode 100644 index 0000000..3d030e4 --- /dev/null +++ b/src/components/reputation/tier.ts @@ -0,0 +1,19 @@ +export interface TierConfig { + label: string; + badgeClass: string; + minScore: number; +} + +export const REPUTATION_TIERS: Record = { + DIAMOND: { label: 'Diamond', badgeClass: 'bg-cyan-500/20 text-cyan-300 border-cyan-500/30', minScore: 900 }, + GOLD: { label: 'Gold', badgeClass: 'bg-amber-500/20 text-amber-300 border-amber-500/30', minScore: 750 }, + SILVER: { label: 'Silver', badgeClass: 'bg-slate-400/20 text-slate-300 border-slate-400/30', minScore: 600 }, + BRONZE: { label: 'Bronze', badgeClass: 'bg-amber-700/20 text-amber-400 border-amber-700/30', minScore: 0 } +}; + +export function getTierForScore(score: number): TierConfig { + if (score >= 900) return REPUTATION_TIERS.DIAMOND; + if (score >= 750) return REPUTATION_TIERS.GOLD; + if (score >= 600) return REPUTATION_TIERS.SILVER; + return REPUTATION_TIERS.BRONZE; +} \ No newline at end of file