From 0795bced60f43ce6200c4c586dbd7ab0babbe1a4 Mon Sep 17 00:00:00 2001 From: Clippii Date: Tue, 23 Jun 2026 03:31:15 +0100 Subject: [PATCH] slop --- frontend/src/App.jsx | 34 ++++++++++++++++++++++++++---- frontend/src/styles.css | 46 +++++++++++++++++++++++++++++++++++++++++ vite.config.js | 3 +++ 3 files changed, 79 insertions(+), 4 deletions(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index efff9f7..df31d12 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -5065,11 +5065,26 @@ function noOpponentTooltip(match, roundLabel) { // threshold pans (and suppresses the click). Move/up live on the window so a fast // drag keeps panning even when the cursor leaves the canvas. function BracketViewport({ children }) { + const containerRef = useRef(null) const ref = useRef(null) + const [fsActive, setFsActive] = useState(false) + + useEffect(() => { + const handler = () => setFsActive(Boolean(document.fullscreenElement)) + document.addEventListener('fullscreenchange', handler) + return () => document.removeEventListener('fullscreenchange', handler) + }, []) + + const toggleFs = (event) => { + event.stopPropagation() + if (document.fullscreenElement) document.exitFullscreen() + else containerRef.current?.requestFullscreen() + } const onPointerDown = (event) => { const el = ref.current if (!el || event.button !== 0) return + if (event.target.closest('[data-fs-btn]')) return const start = { x: event.clientX, y: event.clientY, sl: el.scrollLeft, st: el.scrollTop, moved: false } bracketPan.dragged = false @@ -5102,8 +5117,19 @@ function BracketViewport({ children }) { } return ( -
- {children} +
+
+ {children} +
+
) } @@ -5322,7 +5348,7 @@ function TournamentStandings({ standings }) { function TournamentListColumn({ column, navigate }) { const [collapsed, setCollapsed] = useState(false) return ( -
+
{collapsed ? null : ( -
+
{column.matches.map((match) => (