@@ -4,9 +4,18 @@ import { useMemo, useState } from 'react'
44import Image from 'next/image'
55import type { Sponsor } from '@/data/sponsors'
66
7- export default function SponsorsTabs ( { sponsors } : { sponsors : Sponsor [ ] } ) {
7+ export default function SponsorsTabs ( {
8+ sponsors,
9+ initialSelectedId,
10+ } : {
11+ sponsors : Sponsor [ ]
12+ initialSelectedId ?: string | null
13+ } ) {
814 const first = sponsors [ 0 ] ?. id ?? null
9- const [ selectedId , setSelectedId ] = useState < string | null > ( first )
15+ const [ selectedId , setSelectedId ] = useState < string | null > (
16+ initialSelectedId !== undefined ? initialSelectedId : first
17+ )
18+
1019 const selected = useMemo (
1120 ( ) => sponsors . find ( ( s ) => s . id === selectedId ) ?? null ,
1221 [ sponsors , selectedId ]
@@ -16,7 +25,7 @@ export default function SponsorsTabs({ sponsors }: { sponsors: Sponsor[] }) {
1625
1726 return (
1827 < >
19- < div className = "mt-10 grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4" role = "tablist" >
28+ < div className = "mt-6 grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4" role = "tablist" >
2029 { sponsors . map ( ( s ) => {
2130 const active = s . id === selectedId
2231 return (
@@ -88,7 +97,7 @@ export default function SponsorsTabs({ sponsors }: { sponsors: Sponsor[] }) {
8897 href = { selected . website }
8998 target = "_blank"
9099 rel = "noreferrer"
91- className = "inline-flex items-center gap-2 rounded-xl border border-violet-500/30 bg-white/50 px-3 py-1.5 text-sm font-semibold text-violet-800 shadow-sm backdrop-blur transition hover:border-violet-500/50 hover:bg-white hover:shadow-md dark:border-violet-400/20 dark:bg-zinc-950/20 dark:text-violet-200 focus:outline-none focus:ring-2 focus:ring-violet-400/50 dark:border-violet-400/20 dark:bg-zinc-900/50 dark:text-violet-200 dark:hover:bg-zinc-900 "
100+ className = "inline-flex items-center gap-2 rounded-xl border border-violet-500/30 bg-white/50 px-3 py-1.5 text-sm font-semibold text-violet-800 shadow-sm backdrop-blur transition hover:border-violet-500/50 hover:bg-white hover:shadow-md dark:border-violet-400/20 dark:bg-zinc-950/20 dark:text-violet-200 focus:outline-none focus:ring-2 focus:ring-violet-400/50"
92101 >
93102 Visit website < span className = "opacity-70" > ↗</ span >
94103 </ a >
@@ -99,7 +108,7 @@ export default function SponsorsTabs({ sponsors }: { sponsors: Sponsor[] }) {
99108 href = { l . href }
100109 target = "_blank"
101110 rel = "noreferrer"
102- className = "inline-flex items-center gap-2 rounded-xl border border-zinc-300 bg-white/50 px-3 py-1.5 text-sm font-medium text-zinc-800 shadow-sm backdrop-blur transition hover:bg-white hover:shadow-md dark:border-white/15 dark:bg-zinc-950/20 dark:text-zinc-200 focus:outline-none focus:ring-2 focus:ring-violet-400/50 dark:border-violet-400/20 dark:bg-zinc-900/50 dark:text-violet-200 dark:hover:bg-zinc-900 "
111+ className = "inline-flex items-center gap-2 rounded-xl border border-zinc-300 bg-white/50 px-3 py-1.5 text-sm font-medium text-zinc-800 shadow-sm backdrop-blur transition hover:bg-white hover:shadow-md dark:border-white/15 dark:bg-zinc-950/20 dark:text-zinc-200 focus:outline-none focus:ring-2 focus:ring-violet-400/50"
103112 >
104113 { l . label }
105114 </ a >
0 commit comments