import { ApplePwaSplash } from '@/app/apple-pwa-splash' import { LocaleSwitcher } from '@/components/locale-switcher' import { ProgressBar } from '@/components/progress-bar' import { ThemeProvider } from '@/components/theme-provider' import { ThemeToggle } from '@/components/theme-toggle' import { Button } from '@/components/ui/button' import { Toaster } from '@/components/ui/toaster' import { env } from '@/lib/env' import { TRPCProvider } from '@/trpc/client' import type { Metadata, Viewport } from 'next' import { NextIntlClientProvider, useTranslations } from 'next-intl' import { getLocale, getMessages } from 'next-intl/server' import Image from 'next/image' import Link from 'next/link' import { Suspense } from 'react' import './globals.css' export const metadata: Metadata = { metadataBase: new URL(env.NEXT_PUBLIC_BASE_URL), title: { default: 'Spliit · Share Expenses with Friends & Family', template: '%s · Spliit', }, description: 'Spliit is a minimalist web application to share expenses with friends and family. No ads, no account, no problem.', openGraph: { title: 'Spliit · Share Expenses with Friends & Family', description: 'Spliit is a minimalist web application to share expenses with friends and family. No ads, no account, no problem.', images: `/banner.png`, type: 'website', url: '/', }, twitter: { card: 'summary_large_image', creator: '@scastiel', site: '@scastiel', images: `/banner.png`, title: 'Spliit · Share Expenses with Friends & Family', description: 'Spliit is a minimalist web application to share expenses with friends and family. No ads, no account, no problem.', }, appleWebApp: { capable: true, title: 'Spliit', }, applicationName: 'Spliit', icons: [ { url: '/android-chrome-192x192.png', sizes: '192x192', type: 'image/png', }, { url: '/android-chrome-512x512.png', sizes: '512x512', type: 'image/png', }, ], } export const viewport: Viewport = { themeColor: '#047857', } function Content({ children }: { children: React.ReactNode }) { const t = useTranslations() return (

Spliit

{children}
) } export default async function RootLayout({ children, }: { children: React.ReactNode }) { const locale = await getLocale() const messages = await getMessages() return ( {children} ) }