SPB Git forge

spb/toveli

Public
14commits 1branches 0releases
1.1 MBsize
maindefault branch
2 h agolast push
TypeScript 50.6% JavaScript 46.1% SQL 2.1% Shell 0.6% CSS 0.5%
1.8 KB · 39 lines tsx
Raw Blame History
1import type { Metadata, Viewport } from "next";2import { Inter } from "next/font/google";3import "./globals.css";4import { dbAvailable, meta } from "@/lib/db";5import { SiteHeader } from "@/components/site-header";6import { SiteFooter } from "@/components/site-footer";7import { MobileNav } from "@/components/mobile-nav";89const inter = Inter({ subsets: ["latin"], variable: "--font-inter", display: "swap" });1011export async function generateMetadata(): Promise<Metadata> {12  const n = dbAvailable() ? Number(meta("listings_sale")) + Number(meta("listings_rent")) : 0;13  const count = n ? `${n.toLocaleString("fr-CA")} propriétés à vendre et à louer au Québec` : "Propriétés à vendre et à louer au Québec";14  return {15    metadataBase: new URL("https://www.toveli.ca"),16    title: { default: `Toveli — ${count}`, template: "%s · Toveli" },17    description: `${count}, réunies en un seul endroit : annonces, carte, estimation de valeur avec fourchette et confiance, comparables, marché, financement.`,18    applicationName: "Toveli",19    openGraph: { type: "website", locale: "fr_CA", siteName: "Toveli", url: "https://www.toveli.ca", title: `Toveli — ${count}`, description: "L'immobilier, enfin réuni. Acheter, louer, estimer, comparer, financer." },20    twitter: { card: "summary_large_image" },21    robots: { index: true, follow: true },22  };23}2425export const viewport: Viewport = { themeColor: "#e0263c", width: "device-width", initialScale: 1 };2627export default function RootLayout({ children }: { children: React.ReactNode }) {28  return (29    <html lang="fr-CA" className={inter.variable}>30      <body className="min-h-dvh flex flex-col pb-16 md:pb-0">31        <SiteHeader />32        <main className="flex-1">{children}</main>33        <SiteFooter />34        <MobileNav />35      </body>36    </html>37  );38}39