refactor: Remove emojis and band colors from codebase
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
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:
parent
5c1b05a169
commit
d8b949a965
7 changed files with 11 additions and 37 deletions
|
|
@ -64,10 +64,6 @@ class Vertical(SQLModel, table=True):
|
||||||
# Link to primary artist/band for this vertical
|
# Link to primary artist/band for this vertical
|
||||||
primary_artist_id: Optional[int] = Field(default=None, foreign_key="artist.id")
|
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")
|
shows: List["Show"] = Relationship(back_populates="vertical")
|
||||||
songs: List["Song"] = Relationship(back_populates="vertical")
|
songs: List["Song"] = Relationship(back_populates="vertical")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,7 @@ export default function VerticalPage({ params }: Props) {
|
||||||
return (
|
return (
|
||||||
<div className="space-y-8">
|
<div className="space-y-8">
|
||||||
<div className="text-center space-y-4">
|
<div className="text-center space-y-4">
|
||||||
<h1 className="text-4xl font-bold flex items-center justify-center gap-4">
|
<h1 className="text-4xl font-bold">{vertical.name}</h1>
|
||||||
<span className="text-5xl">{vertical.emoji}</span>
|
|
||||||
<span style={{ color: vertical.color }}>{vertical.name}</span>
|
|
||||||
</h1>
|
|
||||||
<p className="text-muted-foreground max-w-2xl mx-auto">
|
<p className="text-muted-foreground max-w-2xl mx-auto">
|
||||||
Explore setlists, rate performances, and connect with the {vertical.name} community.
|
Explore setlists, rate performances, and connect with the {vertical.name} community.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,7 @@ export default async function ShowsPage({ params }: Props) {
|
||||||
return (
|
return (
|
||||||
<div className="space-y-6">
|
<div className="space-y-6">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
<h1 className="text-3xl font-bold">
|
<h1 className="text-3xl font-bold">{vertical.name} Shows</h1>
|
||||||
<span className="mr-2">{vertical.emoji}</span>
|
|
||||||
{vertical.name} Shows
|
|
||||||
</h1>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{shows.length === 0 ? (
|
{shows.length === 0 ? (
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,7 @@ export default async function SongsPage({ params }: Props) {
|
||||||
return (
|
return (
|
||||||
<div className="space-y-6">
|
<div className="space-y-6">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
<h1 className="text-3xl font-bold">
|
<h1 className="text-3xl font-bold">{vertical.name} Songs</h1>
|
||||||
<span className="mr-2">{vertical.emoji}</span>
|
|
||||||
{vertical.name} Songs
|
|
||||||
</h1>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{songs.length === 0 ? (
|
{songs.length === 0 ? (
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,7 @@ export default async function VenuesPage({ params }: Props) {
|
||||||
return (
|
return (
|
||||||
<div className="space-y-6">
|
<div className="space-y-6">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
<h1 className="text-3xl font-bold">
|
<h1 className="text-3xl font-bold">{vertical.name} Venues</h1>
|
||||||
<span className="mr-2">{vertical.emoji}</span>
|
|
||||||
{vertical.name} Venues
|
|
||||||
</h1>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{venues.length === 0 ? (
|
{venues.length === 0 ? (
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,7 @@ export function BandSelector() {
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
className="flex items-center gap-2 font-bold text-lg"
|
className="flex items-center gap-2 font-bold text-lg"
|
||||||
style={{ color: current.color }}
|
|
||||||
>
|
>
|
||||||
<span>{current.emoji}</span>
|
|
||||||
<span>{current.name}</span>
|
<span>{current.name}</span>
|
||||||
<ChevronDown className="h-4 w-4 opacity-50" />
|
<ChevronDown className="h-4 w-4 opacity-50" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|
@ -38,15 +36,9 @@ export function BandSelector() {
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
key={vertical.slug}
|
key={vertical.slug}
|
||||||
onClick={() => handleSelect(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>
|
{vertical.name}
|
||||||
<span
|
|
||||||
className={vertical.slug === current.slug ? "font-bold" : ""}
|
|
||||||
style={{ color: vertical.slug === current.slug ? vertical.color : undefined }}
|
|
||||||
>
|
|
||||||
{vertical.name}
|
|
||||||
</span>
|
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
))}
|
))}
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ import { usePathname } from "next/navigation"
|
||||||
|
|
||||||
// Supported verticals (bands)
|
// Supported verticals (bands)
|
||||||
export const VERTICALS = [
|
export const VERTICALS = [
|
||||||
{ slug: "goose", name: "Goose", emoji: "🦆", color: "#F59E0B" },
|
{ slug: "goose", name: "Goose" },
|
||||||
{ slug: "phish", name: "Phish", emoji: "🐟", color: "#EF4444" },
|
{ slug: "phish", name: "Phish" },
|
||||||
{ slug: "grateful-dead", name: "Grateful Dead", emoji: "💀", color: "#8B5CF6" },
|
{ slug: "grateful-dead", name: "Grateful Dead" },
|
||||||
{ slug: "dead-and-company", name: "Dead & Company", emoji: "⚡", color: "#3B82F6" },
|
{ slug: "dead-and-company", name: "Dead & Company" },
|
||||||
{ slug: "billy-strings", name: "Billy Strings", emoji: "🎸", color: "#10B981" },
|
{ slug: "billy-strings", name: "Billy Strings" },
|
||||||
] as const
|
] as const
|
||||||
|
|
||||||
export type VerticalSlug = typeof VERTICALS[number]["slug"]
|
export type VerticalSlug = typeof VERTICALS[number]["slug"]
|
||||||
|
|
@ -17,8 +17,6 @@ export type VerticalSlug = typeof VERTICALS[number]["slug"]
|
||||||
export interface Vertical {
|
export interface Vertical {
|
||||||
slug: VerticalSlug
|
slug: VerticalSlug
|
||||||
name: string
|
name: string
|
||||||
emoji: string
|
|
||||||
color: string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface VerticalContextType {
|
interface VerticalContextType {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue