import React, { useState, useEffect } from 'react'; import { X, Send, Clock, Calendar, MessageSquare, ShieldCheck, AlertCircle } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; import { approveTripRequest } from '../services/prafrotService'; import { getCurrentModuleUser } from '@/utils/tokenManager'; import { toast } from 'sonner'; export const AttendanceFormModal = ({ trip, onClose, onRefresh }) => { const [loading, setLoading] = useState(false); const user = getCurrentModuleUser(); const [formData, setFormData] = useState({ atendimento: user?.nome || user?.name || '', situacao_liberacao: 'LIBERADO', data_liberacao: new Date().toISOString().split('T')[0], hora_liberacao: new Date().toLocaleTimeString('pt-BR', { hour: '2-digit', minute: '2-digit' }), observacao: '' }); const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); try { await approveTripRequest({ idsolicitacoes: trip.idsolicitacoes, status: formData.situacao_liberacao, atendimento: formData.atendimento, data_liberacao: formData.data_liberacao, hora_liberacao: formData.hora_liberacao, obs_liberacao: formData.observacao }); toast.success('Atendimento realizado com sucesso!'); onRefresh(); onClose(); } catch (error) { toast.error('Erro ao realizar atendimento'); } finally { setLoading(false); } }; const inputStyle = "w-full bg-black/40 border border-white/10 rounded-xl px-4 py-3 text-sm text-white focus:outline-none focus:border-emerald-500/50 transition-all placeholder:text-zinc-600"; const labelStyle = "text-[10px] font-bold text-zinc-500 uppercase tracking-widest mb-2 block"; return (

Formulário de Atendimento

Solicitação #{trip.idsolicitacoes}

setFormData({...formData, atendimento: e.target.value})} required />
setFormData({...formData, data_liberacao: e.target.value})} required />
setFormData({...formData, hora_liberacao: e.target.value})} required />
{[ { id: 'LIBERADO', label: 'Liberado', color: 'bg-emerald-500', icon: ShieldCheck }, { id: 'PARALIZADO', label: 'Paralizado', color: 'bg-amber-500', icon: AlertCircle } ].map(opt => ( ))}