refactor: Remove emojis and band colors from codebase
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s

- Simplify Vertical model (remove color, emoji fields)
- Update vertical-context.tsx to just slug/name
- Update band-selector.tsx (no colors)
- Update all [vertical] page routes (no emojis in headings)

Themes will be added later as a separate feature.
This commit is contained in:
fullsizemalt 2025-12-28 15:07:42 -08:00
parent 5c1b05a169
commit d8b949a965
7 changed files with 11 additions and 37 deletions

View file

@ -64,10 +64,6 @@ class Vertical(SQLModel, table=True):
# Link to primary artist/band for this vertical
primary_artist_id: Optional[int] = Field(default=None, foreign_key="artist.id")
# Theming
color: Optional[str] = Field(default=None, description="Hex color for branding")
emoji: Optional[str] = Field(default=None, description="Display emoji")
shows: List["Show"] = Relationship(back_populates="vertical")
songs: List["Song"] = Relationship(back_populates="vertical")

View file

@ -21,10 +21,7 @@ export default function VerticalPage({ params }: Props) {
return (
<div className="space-y-8">
<div className="text-center space-y-4">
<h1 className="text-4xl font-bold flex items-center justify-center gap-4">
<span className="text-5xl">{vertical.emoji}</span>
<span style={{ color: vertical.color }}>{vertical.name}</span>
</h1>
<h1 className="text-4xl font-bold">{vertical.name}</h1>
<p className="text-muted-foreground max-w-2xl mx-auto">
Explore setlists, rate performances, and connect with the {vertical.name} community.
</p>

View file

@ -36,10 +36,7 @@ export default async function ShowsPage({ params }: Props) {
return (
<div className="space-y-6">
<div className="flex items-center justify-between">
<h1 className="text-3xl font-bold">
<span className="mr-2">{vertical.emoji}</span>
{vertical.name} Shows
</h1>
<h1 className="text-3xl font-bold">{vertical.name} Shows</h1>
</div>
{shows.length === 0 ? (

View file

@ -36,10 +36,7 @@ export default async function SongsPage({ params }: Props) {
return (
<div className="space-y-6">
<div className="flex items-center justify-between">
<h1 className="text-3xl font-bold">
<span className="mr-2">{vertical.emoji}</span>
{vertical.name} Songs
</h1>
<h1 className="text-3xl font-bold">{vertical.name} Songs</h1>
</div>
{songs.length === 0 ? (

View file

@ -36,10 +36,7 @@ export default async function VenuesPage({ params }: Props) {
return (
<div className="space-y-6">
<div className="flex items-center justify-between">
<h1 className="text-3xl font-bold">
<span className="mr-2">{vertical.emoji}</span>
{vertical.name} Venues
</h1>
<h1 className="text-3xl font-bold">{vertical.name} Venues</h1>
</div>
{venues.length === 0 ? (

View file

@ -26,9 +26,7 @@ export function BandSelector() {
<Button
variant="ghost"
className="flex items-center gap-2 font-bold text-lg"
style={{ color: current.color }}
>
<span>{current.emoji}</span>
<span>{current.name}</span>
<ChevronDown className="h-4 w-4 opacity-50" />
</Button>
@ -38,15 +36,9 @@ export function BandSelector() {
<DropdownMenuItem
key={vertical.slug}
onClick={() => handleSelect(vertical.slug)}
className="flex items-center gap-3 cursor-pointer"
className={`cursor-pointer ${vertical.slug === current.slug ? "font-bold" : ""}`}
>
<span className="text-lg">{vertical.emoji}</span>
<span
className={vertical.slug === current.slug ? "font-bold" : ""}
style={{ color: vertical.slug === current.slug ? vertical.color : undefined }}
>
{vertical.name}
</span>
{vertical.name}
</DropdownMenuItem>
))}
</DropdownMenuContent>

View file

@ -5,11 +5,11 @@ import { usePathname } from "next/navigation"
// Supported verticals (bands)
export const VERTICALS = [
{ slug: "goose", name: "Goose", emoji: "🦆", color: "#F59E0B" },
{ slug: "phish", name: "Phish", emoji: "🐟", color: "#EF4444" },
{ slug: "grateful-dead", name: "Grateful Dead", emoji: "💀", color: "#8B5CF6" },
{ slug: "dead-and-company", name: "Dead & Company", emoji: "⚡", color: "#3B82F6" },
{ slug: "billy-strings", name: "Billy Strings", emoji: "🎸", color: "#10B981" },
{ slug: "goose", name: "Goose" },
{ slug: "phish", name: "Phish" },
{ slug: "grateful-dead", name: "Grateful Dead" },
{ slug: "dead-and-company", name: "Dead & Company" },
{ slug: "billy-strings", name: "Billy Strings" },
] as const
export type VerticalSlug = typeof VERTICALS[number]["slug"]
@ -17,8 +17,6 @@ export type VerticalSlug = typeof VERTICALS[number]["slug"]
export interface Vertical {
slug: VerticalSlug
name: string
emoji: string
color: string
}
interface VerticalContextType {