diff --git a/site/src/components/AthleteView.svelte b/site/src/components/AthleteView.svelte index 2b6d301..4916002 100644 --- a/site/src/components/AthleteView.svelte +++ b/site/src/components/AthleteView.svelte @@ -5,6 +5,7 @@ import RecordsView from './RecordsView.svelte'; import AthleteDrawer from './AthleteDrawer.svelte'; import Explore from './Explore.svelte'; + import NerdCorner from './NerdCorner.svelte'; import { isUnlisted, formatElapsed, formatDistance, sportIcon } from '../lib/format'; import { loadIndex, loadAthlete } from '../lib/dataloader'; @@ -22,7 +23,7 @@ let error: string | null = null; let drawerOpen = false; - type Tab = 'power' | 'records' | 'segments' | 'profile' | 'explore'; + type Tab = 'power' | 'records' | 'segments' | 'profile' | 'explore' | 'nerd'; let activeTab: Tab = 'power'; let mounted = false; let isOwner = false; @@ -83,7 +84,7 @@ onMount(async () => { isOwner = (window as any).__bincioMe === handle; - const TABS: Tab[] = ['power', 'records', 'segments', 'profile', 'explore']; + 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'; activeTab = (resolved === 'explore' && !isOwner) ? 'power' : resolved; @@ -149,7 +150,8 @@ { key: 'records', label: 'Records' }, { key: 'segments', label: 'Segments' }, { key: 'profile', label: 'Profile' }, - { key: 'explore', label: 'Explore', ownerOnly: true }, + { key: 'explore', label: 'Explore', ownerOnly: true }, + { key: 'nerd', label: 'Nerd Corner', ownerOnly: true }, ]; $: TABS = ALL_TABS.filter(t => !t.ownerOnly || isOwner); @@ -331,6 +333,13 @@ {/if} + + {:else if activeTab === 'nerd'} +
+

Year over year

+ +
+ {:else if activeTab === 'explore'}
diff --git a/site/src/components/NerdCorner.svelte b/site/src/components/NerdCorner.svelte new file mode 100644 index 0000000..31ac619 --- /dev/null +++ b/site/src/components/NerdCorner.svelte @@ -0,0 +1,198 @@ + + + + +
+
+ + + +
+
+ + +
+
+ +
+ +{#if !rows.length} +

No activity data to display.

+{/if}