diff --git a/frontend/app/not-found.tsx b/frontend/app/not-found.tsx index e762d7f..413c07b 100644 --- a/frontend/app/not-found.tsx +++ b/frontend/app/not-found.tsx @@ -1,43 +1,127 @@ +"use client" + import Link from "next/link" import { Button } from "@/components/ui/button" -import { Home, ArrowLeft, Search } from "lucide-react" +import { Home, Search, Shuffle, ArrowLeft, Music, Disc3 } from "lucide-react" +import { useState, useEffect } from "react" + +const GOOSE_QUOTES = [ + "Looks like this page flew the coop!", + "Honk if you're lost too!", + "This page has migrated to parts unknown.", + "The jam you seek is not in this location.", + "404: Page not found. But hey, at least the vibes are good.", + "This URL took a wrong turn at Tumble.", + "Flodown? More like FlowGONE.", + "Seems this page is still in the Dripfield.", + "The set break got a little too long...", + "Whoops! Someone put this page in the wrong set.", +] + +const SONG_SUGGESTIONS = [ + { title: "Tumble", slug: "tumble" }, + { title: "Arcadia", slug: "arcadia" }, + { title: "Hungersite", slug: "hungersite" }, + { title: "Atlas Dogs", slug: "atlas-dogs" }, + { title: "Rockdale", slug: "rockdale" }, +] export default function NotFound() { + const [quote, setQuote] = useState("") + const [suggestion, setSuggestion] = useState(SONG_SUGGESTIONS[0]) + const [isSpinning, setIsSpinning] = useState(false) + + useEffect(() => { + // Random quote on mount + setQuote(GOOSE_QUOTES[Math.floor(Math.random() * GOOSE_QUOTES.length)]) + setSuggestion(SONG_SUGGESTIONS[Math.floor(Math.random() * SONG_SUGGESTIONS.length)]) + }, []) + + const shuffleQuote = () => { + setIsSpinning(true) + setTimeout(() => { + setQuote(GOOSE_QUOTES[Math.floor(Math.random() * GOOSE_QUOTES.length)]) + setSuggestion(SONG_SUGGESTIONS[Math.floor(Math.random() * SONG_SUGGESTIONS.length)]) + setIsSpinning(false) + }, 300) + } + return ( -
- The page you're looking for doesn't exist or may have been moved. -
+- Looking for a specific show? Try the{" "} - - shows page - {" "} - or use the search. -
+ + 🪿 ++ {quote} +
+ ++ Click the goose for a new message ☝️ +
+ + {/* Action Buttons */} ++ While you're here, maybe check out: +
+ +{suggestion.title}
+Random song suggestion
+No setlist data available.
+No Setlist Documented
++ This show's setlist hasn't been added yet. Early Goose shows (2014-2016) often weren't documented. +
+