diff --git a/site/src/components/AthleteView.svelte b/site/src/components/AthleteView.svelte index 65be3e3..0bcb8bf 100644 --- a/site/src/components/AthleteView.svelte +++ b/site/src/components/AthleteView.svelte @@ -84,7 +84,16 @@ } onMount(async () => { - isOwner = (window as any).__bincioMe === handle; + const w = window as any; + if (w.__bincioMe !== undefined) { + isOwner = w.__bincioMe === handle; + } else { + // Multi-user: __bincioMe is set asynchronously by /api/me in Base.astro. + // Listen for the event so owner-only tabs appear without a hard refresh. + window.addEventListener('bincio:me', (e: Event) => { + isOwner = (e as CustomEvent).detail === handle; + }, { once: true }); + } const TABS: Tab[] = ['power', 'records', 'segments', 'profile', 'explore', 'nerd']; const rawTab = new URLSearchParams(window.location.search).get('tab'); const resolved = TABS.includes(rawTab as Tab) ? (rawTab as Tab) : 'power';