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.
49 lines
1.6 KiB
TypeScript
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>
|
|
);
|
|
}
|