From b2c1ce6ef5b53cba9b64072ca3433ca80d2b2d7a Mon Sep 17 00:00:00 2001 From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com> Date: Sun, 28 Dec 2025 21:21:39 -0800 Subject: [PATCH] feat: Dynamic footer based on vertical --- frontend/components/layout/footer.tsx | 111 +++++++++++++++++++++++--- 1 file changed, 102 insertions(+), 9 deletions(-) diff --git a/frontend/components/layout/footer.tsx b/frontend/components/layout/footer.tsx index 44d36b8..2a4fc31 100644 --- a/frontend/components/layout/footer.tsx +++ b/frontend/components/layout/footer.tsx @@ -1,6 +1,87 @@ +"use client" + import Link from "next/link" +import { useVertical } from "@/contexts/vertical-context" + +// Configuration for band-specific footer links +const VERTICAL_LINKS: Record = { + "goose": { + listen: [ + { name: "Nugs.net", url: "https://www.nugs.net/goose-concerts-live-downloads-in-mp3-flac-or-online-music-streaming/" }, + { name: "Bandcamp", url: "https://goosetheband.bandcamp.com" }, + { name: "Spotify", url: "https://open.spotify.com/artist/6qqNVTkY8uBg9cP3Jd7DAH" }, + { name: "Relisten", url: "https://relisten.net/goose" } + ], + community: [ + { name: "ElGoose.net", url: "https://elgoose.net" }, + { name: "Reddit", url: "https://www.reddit.com/r/GooseTheBand" }, + { name: "Wysteria Lane", url: "https://wysterialane.org" }, + { name: "WTED Radio", url: "https://wtedradio.com" } + ] + }, + "dead-and-company": { + listen: [ + { name: "Nugs.net", url: "https://www.nugs.net/dead-and-company-concerts-live-downloads-in-mp3-flac-or-online-music-streaming/" }, + { name: "Spotify", url: "https://open.spotify.com/artist/6z5WJ8c8e1d5u5u5u5u5u5" }, // Verify ID + { name: "Relisten", url: "https://relisten.net/dead-and-company" } + ], + community: [ + { name: "Reddit", url: "https://www.reddit.com/r/deadandcompany" }, + { name: "Dead.net", url: "https://www.dead.net" } + ] + }, + "billy-strings": { + listen: [ + { name: "Nugs.net", url: "https://www.nugs.net/billy-strings-concerts-live-downloads-in-mp3-flac-or-online-music-streaming/" }, + { name: "Mixlr", url: "https://billystrings.mixlr.com/" }, + { name: "Relisten", url: "https://relisten.net/billy-strings" } + ], + community: [ + { name: "Reddit", url: "https://www.reddit.com/r/BillyStrings" }, + { name: "Billy Strings Website", url: "https://www.billystrings.com" } + ] + }, + "phish": { + listen: [ + { name: "LivePhish", url: "https://www.livephish.com" }, + { name: "Relisten", url: "https://relisten.net/phish" } + ], + community: [ + { name: "Phish.net", url: "https://phish.net" }, + { name: "Reddit", url: "https://www.reddit.com/r/phish" } + ] + }, + "dmb": { + listen: [ + { name: "Nugs.net", url: "https://www.nugs.net/dave-matthews-band-concerts-live-downloads-in-mp3-flac-or-online-music-streaming/" }, + { name: "Relisten", url: "https://relisten.net/dave-matthews-band" } + ], + community: [ + { name: "AntsMarching", url: "https://antsmarching.org" }, + { name: "DMB Almanac", url: "https://dmbalmanac.com" } + ] + } +} + +const DEFAULT_LINKS = { + listen: [ + { name: "Nugs.net", url: "https://www.nugs.net" }, + { name: "Relisten", url: "https://relisten.net" } + ], + community: [] +} export function Footer() { + const { currentVertical } = useVertical() + + // Get links for current vertical or fallback + const links = (currentVertical && VERTICAL_LINKS[currentVertical.slug]) + ? VERTICAL_LINKS[currentVertical.slug] + : DEFAULT_LINKS + return (