import type { Viewport } from 'next';
import './globals.css';
import { LanguageProvider } from '@/lib/i18n/context';
import { ErrorReporter } from '@/components/error-reporter';

// UPDATE (Tab-Titel-Umbau): "title" ist jetzt ein Objekt mit "default" +
// "template" statt eines einfachen Strings. Next.js haengt bei jeder
// Unterseite, die selbst ein "title" via metadata setzt, dieses Template
// automatisch an (z.B. Unterseiten-Titel "Swipen" -> gerenderter Tab-Titel
// "Swipen · Yumder"). Seiten OHNE eigenes title-metadata fallen auf
// "default" zurueck. Damit muss jede Unterseite nur noch ihren kurzen Namen
// angeben, statt "· Yumder" ueberall zu wiederholen.
export const metadata = {
  title: {
    default: 'Yumder',
    template: '%s · Yumder',
  },
  description: 'Die Dating-App für Restaurants',
  manifest: '/manifest.json',
  icons: {
    icon: [
      { url: '/img/favicon.svg', type: 'image/svg+xml' },
      { url: '/img/favicon-96x96.png', sizes: '96x96', type: 'image/png' },
      { url: '/img/favicon.ico' },
    ],
    apple: [
      { url: '/img/apple-touch-icon.png', sizes: '180x180', type: 'image/png' },
    ],
  },
};

export const viewport: Viewport = {
  width: 'device-width',
  initialScale: 1,
  viewportFit: 'cover',
};

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="de">
      <body className="bg-neutral-950 text-white min-h-dvh">
        <LanguageProvider>
          <ErrorReporter />
          {children}
        </LanguageProvider>
      </body>
    </html>
  );
}
