From 0260afb152fae9afa2c927ad9ad8682db19ed1f8 Mon Sep 17 00:00:00 2001 From: Foohoo Date: Sun, 17 Aug 2025 12:47:44 +0100 Subject: [PATCH] add abbreviations for rarity --- src/components/CardItem.tsx | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/components/CardItem.tsx b/src/components/CardItem.tsx index fdd25a8..ea741c6 100644 --- a/src/components/CardItem.tsx +++ b/src/components/CardItem.tsx @@ -11,6 +11,29 @@ export default function CardItem({ card, checked, onToggle }:{ card: TcgCard; ch const hasHolo = !!(card.variants?.holofoil || (card.tcgplayer as any)?.prices?.holofoil); const hasReverse = !!(card.variants?.reverseHolofoil || (card.tcgplayer as any)?.prices?.reverseHolofoil); const prices = (card as any).tcgplayer?.prices || {}; + const rarityFull = card.rarity || ''; + const rarityAbbr = (() => { + const r = rarityFull.toLowerCase(); + // Specific token-based shortcuts first + if (r.includes('vmax')) return 'VMAX'; + if (r.includes('vstar')) return 'VSTAR'; + if (r.includes('gx')) return 'GX'; + if (r.includes('ex')) return 'EX'; + if (r.includes('v ')) return 'V'; + if (r === 'v') return 'V'; + if (r.includes('secret')) return 'SR'; + if (r.includes('ultra')) return 'UR'; + if (r.includes('reverse')) return 'RH'; + if (r.includes('holo')) return 'HR'; + if (r.includes('promo')) return 'P'; + // Specific before generic 'rare' + if (r.includes('illustration') && r.includes('rare')) return 'IR'; + if (r.includes('rare')) return 'R'; + if (r.includes('uncommon')) return 'U'; + if (r.includes('common')) return 'C'; + // Fallback: first letter of first word uppercased + return rarityFull ? rarityFull.charAt(0).toUpperCase() : ''; + })(); const getPrice = (key: VariantKey): number | undefined => { const map: Record = { base: 'normal', @@ -45,7 +68,14 @@ export default function CardItem({ card, checked, onToggle }:{ card: TcgCard; ch

{card.name} #{card.number}

- {card.rarity ? {card.rarity} : null} + {rarityFull ? ( + + {rarityAbbr} + + ) : null}