diff --git a/web/src/pages/MarketPage.tsx b/web/src/pages/MarketPage.tsx index b1accb4..dc33335 100644 --- a/web/src/pages/MarketPage.tsx +++ b/web/src/pages/MarketPage.tsx @@ -41,14 +41,27 @@ function AgeBadge({ hours, source }: { hours: number | null; source: string | nu const fmt = (n: number | null) => (n == null ? '—' : n.toLocaleString('en-US')); +interface ItemHit { + unique_name: string; + name_en: string | null; + tier: number | null; + enchantment: number; +} + +/** e.g. "T4.3" — shows tier and enchant so enchanted variants are distinguishable. */ +function tierTag(it: { tier: number | null; enchantment: number }): string { + const t = it.tier != null ? `T${it.tier}` : ''; + return it.enchantment > 0 ? `${t}.${it.enchantment}` : t; +} + export default function MarketPage() { const [summary, setSummary] = useState(null); const [minTier, setMinTier] = useState(2); const [maxTier, setMaxTier] = useState(8); const [force, setForce] = useState(false); const [q, setQ] = useState(''); - const [results, setResults] = useState<{ unique_name: string; name_en: string | null }[]>([]); - const [selected, setSelected] = useState<{ unique_name: string; name_en: string | null } | null>(null); + const [results, setResults] = useState([]); + const [selected, setSelected] = useState(null); const [prices, setPrices] = useState([]); const [editing, setEditing] = useState(null); // "city|quality" const [editSell, setEditSell] = useState(''); @@ -94,7 +107,7 @@ export default function MarketPage() { .then((d) => setPrices(d.prices ?? [])); }, []); - const select = (it: { unique_name: string; name_en: string | null }) => { + const select = (it: ItemHit) => { setSelected(it); setResults([]); setQ(''); @@ -197,7 +210,12 @@ export default function MarketPage() { {results.slice(0, 10).map((r) => ( select(r)}> - {r.name_en ?? r.unique_name} + + {r.name_en ?? r.unique_name} + 0 ? `Tier ${r.tier}, enchant ${r.enchantment}` : `Tier ${r.tier}`}> + {tierTag(r)} + + {r.unique_name} ))} @@ -208,7 +226,9 @@ export default function MarketPage() { {selected && ( <>

- {selected.name_en ?? selected.unique_name} {selected.unique_name} + {selected.name_en ?? selected.unique_name} + 0 ? `enchant ${selected.enchantment}` : undefined}>{tierTag(selected)} + {selected.unique_name}

{prices.length === 0 && (

No price data yet — run a price download above, or add a manual price.