saveinmed/saveinmed-frontend/src/app/layout.tsx
NANDO9322 78a95e3263 feat: reestruturação do checkout, correções de pagamento e melhorias visuais
Backend:
- Renomeado BACKEND_URL para BACKEND_HOST no .env e nas configs para consistência.
- Atualizado MercadoPagoGateway para usar o BACKEND_HOST correto na notification_url.
- Atualizado payment_handler para receber e processar informações do Pagador (email/doc).
- Corrigido erro 500 ao buscar dados de compradores B2B.

Frontend:
- Criado componente Header reutilizável e aplicado nas páginas internas.
- Implementada nova página "Meus Pedidos" com lógica de listagem correta.
- Implementada página de "Detalhes do Pedido" (/pedidos/[id]) com alto contraste visual.
- Melhorada a legibilidade da página de detalhes (textos pretos/escuros).
- Corrigido bug onde pagamentos rejeitados eram tratados como sucesso (agora verifica status 'rejected' no serviço).
- Adicionado componente <Toaster /> ao layout principal para corrigir notificações invisíveis.
- Adicionado feedback visual persistente de erro na tela de checkout para falhas de pagamento.
2026-01-28 16:37:21 -03:00

49 lines
1.6 KiB
TypeScript

import type { Metadata } from "next";
import "./globals.css";
import { CarrinhoProvider } from "@/contexts/CarrinhoContext";
import { EmpresaProvider } from "@/contexts/EmpresaContext";
import { AuthProvider } from "@/contexts/AuthContext";
import { Toaster } from "react-hot-toast";
export const metadata: Metadata = {
title: "SaveInMed - Marketplace B2B para farmácias",
description: "Sistema inteligente para gestão médica e hospitalar",
manifest: "/manifest.json",
icons: {
icon: [
{ url: "/favicon.ico", sizes: "any" },
{ url: "/favicon.png", sizes: "32x32", type: "image/png" },
{ url: "/favicon.png", sizes: "16x16", type: "image/png" },
],
shortcut: "/favicon.ico",
apple: [{ url: "/favicon.png", sizes: "180x180", type: "image/png" }],
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="pt-BR">
<head>
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" href="/favicon.png" type="image/png" />
<link rel="apple-touch-icon" href="/favicon.png" />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#3b82f6" />
</head>
<body className="antialiased" suppressHydrationWarning>
<AuthProvider>
<EmpresaProvider>
<CarrinhoProvider>
{children}
<Toaster position="top-right" />
</CarrinhoProvider>
</EmpresaProvider>
</AuthProvider>
</body>
</html>
);
}