correction global error détachement du layout

This commit is contained in:
2026-05-06 19:53:36 +02:00
parent f93d70c447
commit 52a9d47c30
3 changed files with 28 additions and 53 deletions

View File

@@ -1,52 +0,0 @@
"use client";
import { useEffect } from "react";
export default function Error({
error,
reset,
}: {
error: Error & { digest?: string };
reset: () => void;
}) {
useEffect(() => {
// Log the error to an error reporting service
console.error(error);
}, [error]);
return (
<div style={{
fontFamily: 'system-ui, sans-serif',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
minHeight: '60vh',
margin: 0,
backgroundColor: '#f9fafb'
}}>
<div style={{ textAlign: 'center', padding: '2rem' }}>
<h2 style={{ fontSize: '1.5rem', fontWeight: 'bold', color: '#111827', marginBottom: '1rem' }}>
Une erreur est survenue
</h2>
<p style={{ color: '#6b7280', marginBottom: '1.5rem' }}>
Nous nous excusons pour la gêne occasionnée.
</p>
<button
onClick={() => reset()}
style={{
backgroundColor: '#f97316',
color: 'white',
border: 'none',
padding: '0.75rem 1.5rem',
borderRadius: '0.375rem',
fontWeight: '600',
cursor: 'pointer',
fontSize: '0.875rem',
}}
>
Réessayer
</button>
</div>
</div>
);
}

27
app/global-error.tsx Normal file
View File

@@ -0,0 +1,27 @@
"use client";
import React from 'react';
export default function GlobalError({
error,
reset,
}: {
error: Error & { digest?: string };
reset: () => void;
}) {
return (
<html lang="fr">
<body>
<div style={{ textAlign: 'center', padding: '50px', fontFamily: 'sans-serif' }}>
<h2>Erreur critique du serveur</h2>
<button
onClick={() => reset()}
style={{ padding: '10px 20px', cursor: 'pointer' }}
>
Recharger l'application
</button>
</div>
</body>
</html>
);
}

View File

@@ -10,7 +10,7 @@
"dev": "next dev -p 3000", "dev": "next dev -p 3000",
"dev:admin": "npm run dev --prefix admin -- -p 3001", "dev:admin": "npm run dev --prefix admin -- -p 3001",
"all": "concurrently \"npm run dev\" \"npm run dev:admin\"", "all": "concurrently \"npm run dev\" \"npm run dev:admin\"",
"build": "rm -rf .next && prisma generate && next build", "build": "prisma generate && next build",
"build:admin": "npm install --prefix admin && prisma generate && npm run build --prefix admin", "build:admin": "npm install --prefix admin && prisma generate && npm run build --prefix admin",
"start": "npx prisma migrate deploy && next start", "start": "npx prisma migrate deploy && next start",
"start:admin": "npm run start --prefix admin", "start:admin": "npm run start --prefix admin",