Files
clicktrack/app/layout.tsx
AJ Avezzano 8b9d72bc9d feat: analysis providers, settings UI, song search, WAV duration fix
- Multi-provider AI analysis (Anthropic, OpenAI, Ollama, Algorithmic)
- server-only guards on all provider files; client bundle fix
- /settings page with provider status, Ollama model picker, preferences
- Song search box on /analyze replacing raw MBID input (debounced, keyboard nav)
- Auto-register song via MusicBrainz on POST /api/tracks (no more 404)
- Fix WAV duration bug: last section songEnd was double-counting elapsed time
- Registry sync comment updated for self-hosted HTTPS git servers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 18:46:17 -04:00

55 lines
1.9 KiB
TypeScript

import type { Metadata } from "next";
import "./globals.css";
export const metadata: Metadata = {
title: {
default: process.env.NEXT_PUBLIC_APP_NAME ?? "ClickTrack",
template: `%s | ${process.env.NEXT_PUBLIC_APP_NAME ?? "ClickTrack"}`,
},
description:
"Self-hosted click track generator for cover bands. Search songs, view community tempo maps, and download metronomic WAV files.",
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body className="min-h-screen bg-zinc-950 text-zinc-100 antialiased">
<header className="border-b border-zinc-800 px-6 py-4">
<div className="mx-auto flex max-w-4xl items-center justify-between">
<a href="/" className="text-xl font-bold tracking-tight text-green-400">
{process.env.NEXT_PUBLIC_APP_NAME ?? "ClickTrack"}
</a>
<nav className="flex gap-6 text-sm text-zinc-400">
<a href="/" className="hover:text-zinc-100 transition-colors">
Search
</a>
<a href="/analyze" className="hover:text-zinc-100 transition-colors">
Analyze
</a>
<a href="/settings" className="hover:text-zinc-100 transition-colors">
Settings
</a>
<a
href="https://github.com/your-org/clicktrack"
target="_blank"
rel="noopener noreferrer"
className="hover:text-zinc-100 transition-colors"
>
GitHub
</a>
</nav>
</div>
</header>
<main className="mx-auto max-w-4xl px-6 py-10">{children}</main>
<footer className="border-t border-zinc-800 px-6 py-6 text-center text-xs text-zinc-600">
ClickTrack open source, self-hosted. Tempo data from the community registry.
</footer>
</body>
</html>
);
}