// Caminho: app/login/page.tsx "use client"; import {usersService} from "@/services/usersApi.mjs"; import { LoginForm } from "@/components/LoginForm"; import Link from "next/link"; import Image from "next/image"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { ArrowLeft, X } from "lucide-react"; import { useState } from "react"; import RenderFromTemplateContext from "next/dist/client/components/render-from-template-context"; export default function LoginPage() { const [isModalOpen, setIsModalOpen] = useState(false); const [email, setEmail] = useState(""); const [isLoading, setIsLoading] = useState(false); const [message, setMessage] = useState<{ type: "success" | "error"; text: string } | null>(null); const handleOpenModal = () => { // Tenta pegar o email do input do formulário de login const emailInput = document.querySelector('input[type="email"]') as HTMLInputElement; if (emailInput?.value) { setEmail(emailInput.value); } setIsModalOpen(true); }; const handleResetPassword = async () => { if (!email.trim()) { setMessage({ type: "error", text: "Por favor, insira um e-mail válido." }); return; } setIsLoading(true); setMessage(null); try { // Chama o método que já faz o fetch corretamente const data = await usersService.resetPassword(email); console.log("Resposta resetPassword:", data); setMessage({ type: "success", text: "E-mail de recuperação enviado! Verifique sua caixa de entrada.", }); setTimeout(() => { setIsModalOpen(false); setMessage(null); setEmail(""); }, 2000); } catch (error) { console.error("Erro no reset de senha:", error); setMessage({ type: "error", text: error instanceof Error ? error.message : "Erro ao enviar e-mail. Tente novamente.", }); } finally { setIsLoading(false); } }; const closeModal = () => { setIsModalOpen(false); setMessage(null); setEmail(""); }; return ( <>
{/* PAINEL ESQUERDO: O Formulário */}
{/* Link para Voltar */}
Voltar à página inicial
{/* O contêiner principal que agora terá a sombra e o estilo de card */}

Acesse sua conta

Bem-vindo(a) de volta ao MedConnect!

{/* Children para o LoginForm */}
Não tem uma conta de paciente? Crie uma agora
{/* PAINEL DIREITO: A Imagem e Branding */}
{/* Usamos o componente para otimização e performance */} Médica utilizando um tablet na clínica MedConnect {/* Camada de sobreposição para escurecer a imagem e destacar o texto */}
{/* BLOCO DE NOME ADICIONADO */}

MedConnect

Tecnologia e Cuidado a Serviço da Sua Saúde.

Acesse seu portal para uma experiência de saúde integrada, segura e eficiente.

{/* Modal de Recuperação de Senha */} {isModalOpen && (
{/* Botão de fechar */} {/* Cabeçalho */}

Recuperar Senha

Insira seu e-mail e enviaremos um link para redefinir sua senha.

{/* Input de e-mail */}
setEmail(e.target.value)} placeholder="seu@email.com" disabled={isLoading} className="w-full" />
{/* Mensagem de feedback */} {message && (
{message.text}
)} {/* Botões */}
)} ); }