From d059f44d9e970186b35495050657d8bcba0c2f35 Mon Sep 17 00:00:00 2001 From: Tiago Yamamoto Date: Tue, 23 Dec 2025 14:17:20 -0300 Subject: [PATCH] Add 404 and 500 error pages with logging --- saveinmed-frontend/src/app/error.tsx | 60 ++++++++++++++++++++++++ saveinmed-frontend/src/app/not-found.tsx | 48 +++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 saveinmed-frontend/src/app/error.tsx create mode 100644 saveinmed-frontend/src/app/not-found.tsx diff --git a/saveinmed-frontend/src/app/error.tsx b/saveinmed-frontend/src/app/error.tsx new file mode 100644 index 0000000..d74705a --- /dev/null +++ b/saveinmed-frontend/src/app/error.tsx @@ -0,0 +1,60 @@ +"use client"; + +import { useEffect } from "react"; +import Link from "next/link"; + +type ErrorPageProps = { + error: Error & { digest?: string }; + reset: () => void; +}; + +export default function ErrorPage({ error, reset }: ErrorPageProps) { + useEffect(() => { + console.log("[500] Erro na aplicação", { + message: error.message, + digest: error.digest, + stack: error.stack, + timestamp: new Date().toISOString(), + }); + }, [error]); + + return ( +
+
+ + Erro 500 + +

+ Algo deu errado por aqui +

+

+ Registramos detalhes no console do navegador para ajudar na + investigação. Tente novamente ou volte para a página inicial. +

+ {error.digest ? ( +

+ Código do erro: {error.digest} +

+ ) : null} +
+
+ + + Voltar ao início + +
+
+ ); +} diff --git a/saveinmed-frontend/src/app/not-found.tsx b/saveinmed-frontend/src/app/not-found.tsx new file mode 100644 index 0000000..3a9f59d --- /dev/null +++ b/saveinmed-frontend/src/app/not-found.tsx @@ -0,0 +1,48 @@ +"use client"; + +import { useEffect } from "react"; +import Link from "next/link"; +import { usePathname } from "next/navigation"; + +export default function NotFound() { + const pathname = usePathname(); + + useEffect(() => { + console.log("[404] Página não encontrada", { + pathname, + timestamp: new Date().toISOString(), + }); + }, [pathname]); + + return ( +
+
+ + Erro 404 + +

+ Não encontramos essa página +

+

+ Verifique o endereço digitado. Se o problema persistir, abra o + console do navegador para ver mais detalhes. +

+
+
+ + Voltar ao início + + +
+
+ ); +}