From 30c9acf0d202087536bece2e9843e245283ba0e7 Mon Sep 17 00:00:00 2001 From: rouggy Date: Sat, 29 Aug 2026 01:08:39 +0200 Subject: [PATCH] style(watchlist): counters on their own centred line, sane placeholders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The counters are the tab's headline and now sit alone, centred, above the toolbar; everything one interacts with lives on the second row. The inputs stop shouting their placeholders — the uppercase belonged to the VALUE (callsigns), not the hint text — and the auto-contest field says what it is. --- frontend/src/components/WatchlistTab.tsx | 20 ++++++++++++-------- frontend/src/lib/i18n.tsx | 4 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/WatchlistTab.tsx b/frontend/src/components/WatchlistTab.tsx index a941bed..909c23c 100644 --- a/frontend/src/components/WatchlistTab.tsx +++ b/frontend/src/components/WatchlistTab.tsx @@ -223,18 +223,22 @@ export function WatchlistTab({ spots, spotStatus, onSpotSelect, onSpotClick }: P // Capped and centred: a card is a reading surface, and callsign-to-badge // lines stretched across a 34-inch window are not readable, they are long.
- {/* toolbar */} -
+ {/* Header: the counters alone, centred — they are the tab's headline. + Everything one INTERACTS with lives on the second row. */} +
- + {t('wl.cTotal')} {counters.total} - · + | {t('wl.cActive')} {counters.active} - · + | {t('wl.cNeeded')} {counters.needed} - setAddCall(e.target.value)} +
+ {/* toolbar */} +
+ setAddCall(e.target.value.toUpperCase())} onKeyDown={(e) => { if (e.key === 'Enter') void add(); }} />