import "../../assets/css/index.css"; import { withMask } from "use-mask-input"; import { useState, useEffect } from "react"; import { useParams, useNavigate } from "react-router-dom"; import Swal from "sweetalert2"; import { getAccessToken } from "../../utils/auth.js"; import { useResponsive } from '../../utils/useResponsive.js'; import { getUserRole } from "../../utils/userInfo.js"; function EditDoctor() { const [doctorData, setDoctorData] = useState({}); const { id } = useParams(); const navigate = useNavigate(); const role = getUserRole(); const supabaseUrl = import.meta.env.VITE_SUPABASE_URL; const supabaseAK = import.meta.env.VITE_SUPABASE_ANON_KEY; // Buscar médico pelo ID useEffect(() => { const fetchDoctor = async () => { try { const tokenUsuario = getAccessToken(); const response = await fetch( `${supabaseUrl}/rest/v1/doctors?id=eq.${id}`, { method: "GET", headers: { apikey: supabaseAK, Authorization: `Bearer ${tokenUsuario}`, }, } ); const data = await response.json(); if (data && data.length > 0) { setDoctorData(data[0]); } } catch (err) { console.error("Erro ao buscar médico:", err); } }; fetchDoctor(); }, [id]); // Atualizar campos const handleChange = (e) => { const { name, value } = e.target; setDoctorData((prev) => ({ ...prev, [name]: value, })); }; // Buscar CEP const buscarCep = () => { const cep = doctorData.cep?.replace(/\D/g, ""); if (!cep) return; fetch(`https://viacep.com.br/ws/${cep}/json/`) .then((response) => response.json()) .then((data) => { setDoctorData((prev) => ({ ...prev, city: data.localidade || "", state: data.uf || "", street: data.logradouro || "", neighborhood: data.bairro || "", })); }) .catch((err) => console.error("Erro ao buscar CEP:", err)); }; // Salvar alterações const handleEdit = async (e) => { e.preventDefault(); const result = await Swal.fire({ title: "Deseja salvar as alterações?", text: "As modificações serão salvas permanentemente.", icon: "question", showDenyButton: true, showCancelButton: true, confirmButtonText: "Salvar", denyButtonText: `Não salvar`, cancelButtonText: "Cancelar", }); if (result.isConfirmed) { try { const tokenUsuario = getAccessToken(); const response = await fetch( `${supabaseUrl}/rest/v1/doctors?id=eq.${id}`, { method: "PATCH", headers: { apikey: supabaseAK, Authorization: `Bearer ${tokenUsuario}`, "Content-Type": "application/json", }, body: JSON.stringify(doctorData), } ); if (!response.ok) { const err = await response.json(); Swal.fire("Erro!", err.message || "Não foi possível salvar.", "error"); return; } await Swal.fire("Sucesso!", "As alterações foram salvas.", "success"); navigate(`/${role}/doctorlist`); } catch (err) { console.error("Erro inesperado:", err); Swal.fire("Erro!", "Não foi possível salvar as alterações.", "error"); } } }; return (

Editar Médico

{/* Nome completo */}
{/* CPF */}
{/* Email */}
{/* Telefone */}
{/* CRM */}
{/* CRM UF */}
{/* Especialidade */}
{/* Data de nascimento */}
{/* CEP */}
{/* Rua */}
{/* Número */}
{/* Complemento */}
{/* Bairro */}
{/* Cidade */}
{/* Estado */}
{/* Ativo/Inativo */}
setDoctorData((prev) => ({ ...prev, active: true })) } />
setDoctorData((prev) => ({ ...prev, active: false })) } />
); } export default EditDoctor;