Files
btpxpress-frontend/app/(main)/layout.tsx
dahoud a8825a058b Fix: Corriger toutes les erreurs de build du frontend
- Correction des erreurs TypeScript dans userService.ts et workflowTester.ts
- Ajout des propriétés manquantes aux objets User mockés
- Conversion des dates de string vers objets Date
- Correction des appels asynchrones et des types incompatibles
- Ajout de dynamic rendering pour résoudre les erreurs useSearchParams
- Enveloppement de useSearchParams dans Suspense boundary
- Configuration de force-dynamic au niveau du layout principal

Build réussi: 126 pages générées avec succès

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-18 13:23:08 +00:00

42 lines
1.2 KiB
TypeScript

import { Metadata, Viewport } from 'next';
import Layout from '../../layout/layout';
import ProtectedLayout from '../../components/ProtectedLayout';
interface MainLayoutProps {
children: React.ReactNode;
}
// Force dynamic rendering for all pages in this layout to avoid useSearchParams issues
export const dynamic = 'force-dynamic';
export const dynamicParams = true;
export const metadata: Metadata = {
title: 'BTP Xpress',
description: 'Votre plateforme de gestion BTP moderne pour tous vos projets de construction.',
robots: { index: false, follow: false },
openGraph: {
type: 'website',
title: 'BTP Xpress - Gestion de projets BTP',
url: 'https://btpxpress.com',
description: 'Votre plateforme de gestion BTP moderne pour tous vos projets de construction.',
images: ['https://btpxpress.com/static/social/btpxpress.png'],
ttl: 604800
},
icons: {
icon: '/favicon.ico'
}
};
export const viewport: Viewport = {
initialScale: 1,
width: 'device-width'
};
export default function MainLayout({ children }: MainLayoutProps) {
return (
<ProtectedLayout>
<Layout>{children}</Layout>
</ProtectedLayout>
);
}