Files
btpxpress-frontend/app/layout.tsx
2025-10-13 05:29:32 +02:00

104 lines
3.1 KiB
TypeScript

import type { Metadata } from 'next';
import { Inter } from 'next/font/google';
import { ClientProviders } from '../components/ClientProviders';
import 'primereact/resources/primereact.css';
import 'primeflex/primeflex.css';
import 'primeicons/primeicons.css';
import '../styles/layout/layout.scss';
import '../styles/demo/Demos.scss';
import '../styles/demo/landing.scss';
const inter = Inter({
subsets: ['latin'],
display: 'swap',
preload: true,
});
export const metadata: Metadata = {
title: {
default: 'BTP Xpress - Plateforme de Gestion BTP Professionnelle',
template: '%s | BTP Xpress'
},
description: 'BTP Xpress est la solution complète de gestion pour les entreprises du BTP. Gérez vos chantiers, clients, devis, factures et équipes avec une plateforme moderne et intuitive.',
keywords: [
'BTP',
'gestion chantier',
'logiciel BTP',
'devis BTP',
'facturation BTP',
'planning chantier',
'matériel BTP',
'suivi chantier',
'entreprise BTP',
'construction',
'bâtiment',
'travaux publics'
],
authors: [{ name: 'BTP Xpress Team' }],
creator: 'BTP Xpress',
publisher: 'BTP Xpress',
formatDetection: {
email: false,
address: false,
telephone: false,
},
metadataBase: new URL('https://btpxpress.lions.dev'),
alternates: {
canonical: '/',
},
openGraph: {
type: 'website',
locale: 'fr_FR',
url: 'https://btpxpress.lions.dev',
title: 'BTP Xpress - Plateforme de Gestion BTP Professionnelle',
description: 'Solution complète de gestion pour les entreprises du BTP. Chantiers, clients, devis, factures et équipes.',
siteName: 'BTP Xpress',
images: [
{
url: '/og-image.jpg',
width: 1200,
height: 630,
alt: 'BTP Xpress - Plateforme de Gestion BTP',
},
],
},
twitter: {
card: 'summary_large_image',
title: 'BTP Xpress - Plateforme de Gestion BTP',
description: 'Solution complète de gestion pour les entreprises du BTP',
images: ['/twitter-image.jpg'],
},
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
'max-video-preview': -1,
'max-image-preview': 'large',
'max-snippet': -1,
},
},
verification: {
google: 'your-google-verification-code',
},
};
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="fr" suppressHydrationWarning className={inter.className}>
<head>
<link id="theme-link" href={`/theme/theme-dark/magenta/theme.css`} rel="stylesheet"></link>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#f97316" />
<link rel="icon" href="/favicon.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.json" />
</head>
<body>
<ClientProviders>{children}</ClientProviders>
</body>
</html>
);
}