2 lines
29 KiB
JavaScript
2 lines
29 KiB
JavaScript
var xe=Object.defineProperty;var ge=(n,t,s)=>t in n?xe(n,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[t]=s;var z=(n,t,s)=>ge(n,typeof t!="symbol"?t+"":t,s);import{j as e}from"./query-vendor-BLVqILA6.js";import{r as d,c as me,L as H}from"./router-vendor-D4by-_6Z.js";import{T as ue}from"./ThemeToggle-Cryh6OOS.js";import{A as w,m as h,X as he,b as Q,k as Z,l as ee,w as ae,a5 as be,g as R,a6 as P,a7 as V,a8 as L,o as pe,P as ye,S as G,d as fe,h as K,a9 as je,aa as ke,E as ve,F as Ne,j as we}from"./ui-vendor-CyRvbSfR.js";import"./react-vendor-CqRd3GwO.js";const Te={inicio:"Tarefa Iniciada",pausa:"Tarefa Pausada",retomada:"Tarefa Retomada",conclusao:"Tarefa Concluída",revisao:"Tarefa Revisada",edicao:"Tarefa Editada",cancelamento:"Tarefa Cancelada"},Ce={inicio:"text-blue-600 bg-blue-100 dark:bg-blue-900/30",pausa:"text-yellow-600 bg-yellow-100 dark:bg-yellow-900/30",retomada:"text-blue-600 bg-blue-100 dark:bg-blue-900/30",conclusao:"text-green-600 bg-green-100 dark:bg-green-900/30",revisao:"text-purple-600 bg-purple-100 dark:bg-purple-900/30",edicao:"text-orange-600 bg-orange-100 dark:bg-orange-900/30",cancelamento:"text-red-600 bg-red-100 dark:bg-red-900/30"},W="task_logs",k=class k{constructor(){z(this,"logs",{});this.loadFromStorage()}static getInstance(){return k.instance||(k.instance=new k),k.instance}loadFromStorage(){try{const t=localStorage.getItem(W);t&&(this.logs=JSON.parse(t))}catch{this.logs={}}}saveToStorage(){try{localStorage.setItem(W,JSON.stringify(this.logs))}catch{}}addEvent(t,s,o="Usuário Atual",l,i){const x=new Date().toISOString();this.logs[t]||(this.logs[t]={taskId:t,eventos:[],criadoEm:x,atualizadoEm:x});const p={id:`${t}_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,taskId:t,type:s,timestamp:x,usuario:o,...l!==void 0&&{descricao:l},...i!==void 0&&{detalhes:i}};this.logs[t].eventos.push(p),this.logs[t].atualizadoEm=x,this.saveToStorage()}getTaskLog(t){return this.logs[t]||null}getTaskEvents(t){const s=this.getTaskLog(t);return s?s.eventos.sort((o,l)=>new Date(l.timestamp).getTime()-new Date(o.timestamp).getTime()):[]}getAllLogs(){return{...this.logs}}clearTaskLog(t){delete this.logs[t],this.saveToStorage()}clearAllLogs(){this.logs={},this.saveToStorage()}logTaskStart(t,s){this.addEvent(t,"inicio",s,"Tarefa iniciada")}logTaskPause(t,s){this.addEvent(t,"pausa",s,"Tarefa pausada")}logTaskResume(t,s){this.addEvent(t,"retomada",s,"Tarefa retomada")}logTaskComplete(t,s){this.addEvent(t,"conclusao",s,"Tarefa concluída")}logTaskEdit(t,s,o,l){const i={camposAlterados:s,...l!==void 0&&{observacoes:l}};this.addEvent(t,"edicao",o,`Tarefa editada: ${s.join(", ")}`,i)}logTaskCancel(t,s,o){const l=o!==void 0?{observacoes:o}:void 0;this.addEvent(t,"cancelamento",s,"Tarefa cancelada",l)}logStatusChange(t,s,o,l){let i,x;switch(o){case"em_andamento":i=s==="pausada"?"retomada":"inicio",x=s==="pausada"?"Tarefa retomada":"Tarefa iniciada";break;case"pausada":i="pausa",x="Tarefa pausada";break;case"concluida":i="conclusao",x="Tarefa concluída";break;case"cancelada":i="cancelamento",x="Tarefa cancelada";break;default:i="edicao",x=`Status alterado de ${s} para ${o}`}this.addEvent(t,i,l,x,{statusAnterior:s,statusNovo:o})}};z(k,"instance");let I=k;const te=I.getInstance(),E=(n,t,s,o)=>{let l;switch(t){case"start":l="inicio";break;case"resume":l="retomada";break;case"pause":l="pausa";break;case"complete":l="conclusao";break;case"edit":l="edicao";break;case"cancel":l="cancelamento";break;default:l="edicao"}te.addEvent(n,l,o,s)},Ee={Play:L,Pause:V,CheckCircle2:P,Edit3:R,RotateCcw:be,X:ae},Se=({isOpen:n,onClose:t,taskId:s,taskTitle:o})=>{const[l,i]=d.useState([]),[x,p]=d.useState(!0);d.useEffect(()=>{n&&s&&D()},[n,s]);const D=()=>{p(!0);try{const r=te.getTaskEvents(s);i(r)}catch{i([])}finally{p(!1)}},v=r=>{const u=new Date(r);return{date:u.toLocaleDateString("pt-BR"),time:u.toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"})}},A=r=>Ee[r==="inicio"||r==="retomada"?"Play":r==="pausa"?"Pause":r==="conclusao"?"CheckCircle2":r==="edicao"?"Edit3":r==="revisao"?"RotateCcw":"X"],S=r=>{const u=new Date,N=new Date(r),y=Math.floor((u.getTime()-N.getTime())/(1e3*60));if(y<1)return"Agora mesmo";if(y<60)return`${y} min atrás`;const b=Math.floor(y/60);if(b<24)return`${b}h atrás`;const f=Math.floor(b/24);return f<7?`${f} dia${f>1?"s":""} atrás`:v(r).date};return n?e.jsx(w,{children:e.jsx("div",{className:"fixed inset-0 bg-black/50 backdrop-blur-sm z-50 flex items-center justify-center p-4",children:e.jsxs(h.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-white dark:bg-gray-800 rounded-2xl shadow-2xl w-full max-w-2xl max-h-[80vh] overflow-hidden",children:[e.jsx("div",{className:"bg-gradient-to-r from-blue-600 to-purple-600 px-6 py-4 text-white",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-bold mb-1",children:"Histórico da Tarefa"}),e.jsx("p",{className:"text-blue-100 text-sm truncate",children:o})]}),e.jsx("button",{onClick:t,className:"p-2 hover:bg-white/20 rounded-lg transition-colors",children:e.jsx(he,{className:"w-5 h-5"})})]})}),e.jsx("div",{className:"p-6 overflow-y-auto max-h-[calc(80vh-120px)]",children:x?e.jsxs("div",{className:"flex items-center justify-center py-12",children:[e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"}),e.jsx("span",{className:"ml-3 text-gray-600 dark:text-gray-300",children:"Carregando histórico..."})]}):l.length===0?e.jsxs("div",{className:"text-center py-12",children:[e.jsx("div",{className:"w-16 h-16 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center justify-center mx-auto mb-4",children:e.jsx(Q,{className:"w-8 h-8 text-gray-400 dark:text-gray-500"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Nenhum evento registrado"}),e.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:"Esta tarefa ainda não possui histórico de atividades."})]}):e.jsx("div",{className:"space-y-4",children:l.map((r,u)=>{const N=A(r.type),{date:y,time:b}=v(r.timestamp),f=u===0,T=u===l.length-1;return e.jsxs(h.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:u*.05},className:"relative",children:[!T&&e.jsx("div",{className:"absolute left-6 top-12 w-0.5 h-full bg-gray-200 dark:bg-gray-700 -z-10"}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx("div",{className:`flex-shrink-0 w-12 h-12 rounded-full flex items-center justify-center ${Ce[r.type]} ${f?"ring-2 ring-blue-500 ring-offset-2 dark:ring-offset-gray-800":""}`,children:e.jsx(N,{className:"w-5 h-5"})}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-xl p-4",children:[e.jsxs("div",{className:"flex items-start justify-between mb-2",children:[e.jsx("h4",{className:"font-semibold text-gray-900 dark:text-white",children:Te[r.type]}),e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400 ml-2",children:S(r.timestamp)})]}),r.descricao&&e.jsx("p",{className:"text-gray-700 dark:text-gray-300 text-sm mb-3",children:r.descricao}),r.detalhes&&e.jsxs("div",{className:"space-y-2 text-sm",children:[r.detalhes.statusAnterior&&r.detalhes.statusNovo&&e.jsxs("div",{className:"flex items-center gap-2 text-gray-600 dark:text-gray-400",children:[e.jsx("span",{children:"Status:"}),e.jsx("span",{className:"font-medium",children:r.detalhes.statusAnterior}),e.jsx("span",{children:"→"}),e.jsx("span",{className:"font-medium",children:r.detalhes.statusNovo})]}),r.detalhes.camposAlterados&&r.detalhes.camposAlterados.length>0&&e.jsxs("div",{className:"text-gray-600 dark:text-gray-400",children:[e.jsx("span",{children:"Campos alterados: "}),e.jsx("span",{className:"font-medium",children:r.detalhes.camposAlterados.join(", ")})]}),r.detalhes.observacoes&&e.jsxs("div",{className:"text-gray-600 dark:text-gray-400",children:[e.jsx("span",{children:"Observações: "}),e.jsx("span",{className:"font-medium",children:r.detalhes.observacoes})]})]}),e.jsxs("div",{className:"flex items-center justify-between mt-3 pt-3 border-t border-gray-200 dark:border-gray-600",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400",children:[e.jsx(Z,{className:"w-3 h-3"}),e.jsx("span",{children:r.usuario})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400",children:[e.jsx(ee,{className:"w-3 h-3"}),e.jsxs("span",{children:[y," às ",b]})]})]})]})})]})]},r.id)})})})]})})}):null},_e=[{id:"1",titulo:"Concretagem da Laje do 2º Pavimento",descricao:"Executar a concretagem da laje do segundo pavimento conforme projeto estrutural",obra_id:"1",obra_nome:"Edifício Residencial Aurora",responsavel:"João Silva",prioridade:"alta",status:"em_andamento",data_inicio:"2024-01-15",data_prazo:"2024-01-18",progresso:65,tempo_estimado:16,tempo_trabalhado:10.5,categoria:"Estrutura",localizacao:"2º Pavimento",anexos:3,comentarios:2},{id:"2",titulo:"Instalação Elétrica - Sala 201",descricao:"Instalação completa do sistema elétrico da sala 201",obra_id:"1",obra_nome:"Edifício Residencial Aurora",responsavel:"Carlos Santos",prioridade:"media",status:"pendente",data_inicio:"2024-01-20",data_prazo:"2024-01-25",progresso:0,tempo_estimado:12,tempo_trabalhado:0,categoria:"Elétrica",localizacao:"2º Pavimento - Sala 201",anexos:1,comentarios:0},{id:"3",titulo:"Impermeabilização da Cobertura",descricao:"Aplicação de manta asfáltica na cobertura do edifício",obra_id:"1",obra_nome:"Edifício Residencial Aurora",responsavel:"Pedro Costa",prioridade:"critica",status:"pausada",data_inicio:"2024-01-12",data_prazo:"2024-01-16",progresso:30,tempo_estimado:24,tempo_trabalhado:7,categoria:"Impermeabilização",localizacao:"Cobertura",anexos:2,comentarios:4},{id:"4",titulo:"Pintura Externa - Fachada Norte",descricao:"Aplicação de tinta acrílica na fachada norte do edifício",obra_id:"1",obra_nome:"Edifício Residencial Aurora",responsavel:"Ana Costa",prioridade:"baixa",status:"pendente",data_inicio:"2024-01-25",data_prazo:"2024-02-05",progresso:0,tempo_estimado:32,tempo_trabalhado:0,categoria:"Acabamento",localizacao:"Fachada Norte",anexos:0,comentarios:1}],F={pendente:{label:"Pendente",color:"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300",icon:ke},em_andamento:{label:"Em Andamento",color:"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300",icon:L},pausada:{label:"Pausada",color:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-300",icon:V},concluida:{label:"Concluída",color:"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300",icon:P},cancelada:{label:"Cancelada",color:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-300",icon:je}},Y={baixa:{label:"Baixa",color:"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300"},media:{label:"Média",color:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-300"},alta:{label:"Alta",color:"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-300"},critica:{label:"Crítica",color:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-300"}};function ze(){const{id:n}=me(),[t,s]=d.useState([]),[o,l]=d.useState(""),[i,x]=d.useState("todos"),[p,D]=d.useState("todas"),[v,A]=d.useState(!1),[S,r]=d.useState(null),[u,N]=d.useState(null),[y,b]=d.useState(!1),[f,T]=d.useState(null),[re,C]=d.useState(!1),[j,O]=d.useState(null),[B,U]=d.useState(!1),[$,q]=d.useState(null);d.useEffect(()=>{const a=_e.filter(c=>c.obra_id===n);s(a),a.length>0&&N({nome:a[0].obra_nome})},[n]);const J=t.filter(a=>{const c=a.titulo.toLowerCase().includes(o.toLowerCase())||a.descricao.toLowerCase().includes(o.toLowerCase())||a.responsavel.toLowerCase().includes(o.toLowerCase()),m=i==="todos"||a.status===i,g=p==="todas"||a.prioridade===p;return c&&m&&g}),_=(a,c)=>{const m=t.find(g=>g.id===a);m&&(c==="em_andamento"&&m.status==="pendente"?E(a,"start","Tarefa iniciada"):c==="em_andamento"&&m.status==="pausada"?E(a,"resume","Tarefa retomada"):c==="pausada"?E(a,"pause","Tarefa pausada"):c==="concluida"&&E(a,"complete","Tarefa concluída")),s(t.map(g=>g.id===a?{...g,status:c}:g))},se=a=>{q(a),U(!0),r(null)},le=a=>{E(a.id,"edit","Tarefa editada"),O(a),C(!0),r(null)},oe=a=>{T(a),b(!0),r(null)},ie=()=>{f&&(s(t.filter(a=>a.id!==f)),T(null),b(!1))},X=()=>{T(null),b(!1)},de=a=>{const c=new Date,g=new Date(a).getTime()-c.getTime();return Math.ceil(g/(1e3*60*60*24))},ne=(a,c)=>c==="concluida"?"bg-green-500":c==="cancelada"?"bg-red-500":a>=80?"bg-green-500":a>=50?"bg-yellow-500":"bg-blue-500",ce=({task:a})=>{const c=F[a.status].icon,m=de(a.data_prazo),g=m<0,M=m<=2&&m>=0;return e.jsxs(h.div,{layout:!0,initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"bg-white/70 dark:bg-gray-800/70 backdrop-blur-md rounded-2xl p-6 border border-gray-200/50 dark:border-gray-700/50 shadow-lg hover:shadow-xl transition-all duration-300",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white text-lg",children:a.titulo}),(g||M)&&e.jsx(ae,{className:`w-5 h-5 ${g?"text-red-500":"text-yellow-500"}`})]}),e.jsx("p",{className:"text-gray-600 dark:text-gray-300 text-sm mb-3",children:a.descricao})]}),e.jsxs("div",{className:"relative",children:[e.jsx("button",{onClick:()=>r(S===a.id?null:a.id),className:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",children:e.jsx(ve,{className:"w-5 h-5 text-gray-400 dark:text-gray-500"})}),e.jsx(w,{children:S===a.id&&e.jsx(h.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"absolute right-0 top-full mt-2 w-48 bg-white dark:bg-gray-800 rounded-xl shadow-lg border border-gray-200 dark:border-gray-700 z-10",children:e.jsxs("div",{className:"p-2",children:[e.jsxs("button",{onClick:()=>se(a.id),className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",children:[e.jsx(Ne,{className:"w-4 h-4"}),"Ver Log"]}),e.jsxs("button",{onClick:()=>le(a),className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",children:[e.jsx(R,{className:"w-4 h-4"}),"Editar"]}),e.jsxs("button",{onClick:()=>oe(a.id),className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-red-600 hover:bg-red-50 dark:hover:bg-red-900/20 rounded-lg transition-colors",children:[e.jsx(K,{className:"w-4 h-4"}),"Excluir"]})]})})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[e.jsxs("span",{className:`px-3 py-1 rounded-full text-xs font-medium ${F[a.status].color}`,children:[e.jsx(c,{className:"w-3 h-3 inline mr-1"}),F[a.status].label]}),e.jsx("span",{className:`px-3 py-1 rounded-full text-xs font-medium ${Y[a.prioridade].color}`,children:Y[a.prioridade].label}),e.jsx("span",{className:"px-3 py-1 bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 rounded-full text-xs font-medium",children:a.categoria})]}),e.jsxs("div",{className:"mb-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"Progresso"}),e.jsxs("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:[a.progresso,"%"]})]}),e.jsx("div",{className:"w-full bg-gray-200 dark:bg-gray-700 rounded-full h-2",children:e.jsx(h.div,{initial:{width:0},animate:{width:`${a.progresso}%`},transition:{duration:.5,ease:"easeOut"},className:`h-2 rounded-full ${ne(a.progresso,a.status)}`})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Z,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"}),e.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-300",children:a.responsavel})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(we,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"}),e.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-300",children:a.localizacao||"Não especificado"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ee,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"}),e.jsx("span",{className:`text-sm ${g?"text-red-600 dark:text-red-400 font-medium":M?"text-yellow-600 dark:text-yellow-400 font-medium":"text-gray-600 dark:text-gray-300"}`,children:g?`${Math.abs(m)} dias atrasado`:m===0?"Vence hoje":`${m} dias restantes`})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Q,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"}),e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-300",children:[a.tempo_trabalhado,"h / ",a.tempo_estimado,"h"]})]})]}),e.jsxs("div",{className:"flex gap-2",children:[a.status==="pendente"&&e.jsxs("button",{onClick:()=>_(a.id,"em_andamento"),className:"flex-1 flex items-center justify-center gap-2 py-2 px-4 bg-blue-600 text-white rounded-xl hover:bg-blue-700 transition-colors",children:[e.jsx(L,{className:"w-4 h-4"}),"Iniciar"]}),a.status==="em_andamento"&&e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>_(a.id,"pausada"),className:"flex-1 flex items-center justify-center gap-2 py-2 px-4 bg-yellow-600 text-white rounded-xl hover:bg-yellow-700 transition-colors",children:[e.jsx(V,{className:"w-4 h-4"}),"Pausar"]}),e.jsxs("button",{onClick:()=>_(a.id,"concluida"),className:"flex-1 flex items-center justify-center gap-2 py-2 px-4 bg-green-600 text-white rounded-xl hover:bg-green-700 transition-colors",children:[e.jsx(P,{className:"w-4 h-4"}),"Concluir"]})]}),a.status==="pausada"&&e.jsxs("button",{onClick:()=>_(a.id,"em_andamento"),className:"flex-1 flex items-center justify-center gap-2 py-2 px-4 bg-blue-600 text-white rounded-xl hover:bg-blue-700 transition-colors",children:[e.jsx(L,{className:"w-4 h-4"}),"Retomar"]}),a.status==="concluida"&&e.jsxs("div",{className:"flex-1 flex items-center justify-center gap-2 py-2 px-4 bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-300 rounded-xl",children:[e.jsx(P,{className:"w-4 h-4"}),"Concluída"]})]})]})};return e.jsxs("div",{className:"min-h-screen bg-gradient-to-br from-blue-50 via-white to-purple-50 dark:from-gray-900 dark:via-gray-800 dark:to-gray-900",children:[e.jsx("div",{className:"bg-white/80 dark:bg-gray-800/80 backdrop-blur-md border-b border-gray-200/50 dark:border-gray-700/50",children:e.jsxs("div",{className:"px-6 py-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(H,{to:`/obra/${n}`,className:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",children:e.jsx(pe,{className:"w-5 h-5 text-gray-600 dark:text-gray-300"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-2",children:"Tarefas da Obra"}),e.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:u?.nome||"Carregando..."})]})]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(ue,{}),e.jsxs(H,{to:`/obra/${n}/tarefa/nova`,className:"flex items-center gap-2 px-6 py-3 bg-blue-600 text-white rounded-xl hover:bg-blue-700 transition-colors shadow-lg",children:[e.jsx(ye,{className:"w-5 h-5"}),"Nova Tarefa"]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex gap-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(G,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-5 h-5 text-gray-400 dark:text-gray-500"}),e.jsx("input",{type:"text",placeholder:"Buscar tarefas...",value:o,onChange:a=>l(a.target.value),className:"w-full pl-10 pr-4 py-3 bg-white/50 dark:bg-gray-700/50 border border-gray-300 dark:border-gray-600 rounded-xl focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400"})]}),e.jsxs("button",{onClick:()=>A(!v),className:`flex items-center gap-2 px-4 py-3 rounded-xl border transition-colors ${v?"bg-blue-100 dark:bg-blue-900/30 border-blue-300 dark:border-blue-600 text-blue-700 dark:text-blue-300":"bg-white/50 dark:bg-gray-700/50 border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-600"}`,children:[e.jsx(fe,{className:"w-5 h-5"}),"Filtros"]})]}),e.jsx(w,{children:v&&e.jsxs(h.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"grid grid-cols-1 md:grid-cols-2 gap-4 p-4 bg-white/50 dark:bg-gray-700/50 rounded-xl border border-gray-200 dark:border-gray-600",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Status"}),e.jsxs("select",{value:i,onChange:a=>x(a.target.value),className:"w-full px-3 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white",children:[e.jsx("option",{value:"todos",children:"Todos os Status"}),e.jsx("option",{value:"pendente",children:"Pendente"}),e.jsx("option",{value:"em_andamento",children:"Em Andamento"}),e.jsx("option",{value:"pausada",children:"Pausada"}),e.jsx("option",{value:"concluida",children:"Concluída"}),e.jsx("option",{value:"cancelada",children:"Cancelada"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Prioridade"}),e.jsxs("select",{value:p,onChange:a=>D(a.target.value),className:"w-full px-3 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white",children:[e.jsx("option",{value:"todas",children:"Todas as Prioridades"}),e.jsx("option",{value:"baixa",children:"Baixa"}),e.jsx("option",{value:"media",children:"Média"}),e.jsx("option",{value:"alta",children:"Alta"}),e.jsx("option",{value:"critica",children:"Crítica"})]})]})]})})]})]})}),e.jsx("div",{className:"px-6 py-6",children:J.length===0?e.jsx(h.div,{initial:{opacity:0},animate:{opacity:1},className:"text-center py-12",children:e.jsxs("div",{className:"bg-white/70 dark:bg-gray-800/70 backdrop-blur-md rounded-2xl p-8 border border-gray-200/50 dark:border-gray-700/50 shadow-lg max-w-md mx-auto",children:[e.jsx("div",{className:"w-16 h-16 bg-gray-100 dark:bg-gray-700 rounded-full flex items-center justify-center mx-auto mb-4",children:e.jsx(G,{className:"w-8 h-8 text-gray-400 dark:text-gray-500"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Nenhuma tarefa encontrada"}),e.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:t.length===0?"Esta obra ainda não possui tarefas cadastradas":"Tente ajustar os filtros ou criar uma nova tarefa"})]})}):e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-6",children:e.jsx(w,{children:J.map(a=>e.jsx(ce,{task:a},a.id))})})}),e.jsx(w,{children:y&&e.jsx(h.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center z-50 p-4",onClick:X,children:e.jsxs(h.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-white dark:bg-gray-800 rounded-2xl p-6 max-w-md w-full shadow-xl",onClick:a=>a.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"w-12 h-12 bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center",children:e.jsx(K,{className:"w-6 h-6 text-red-600 dark:text-red-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Excluir Tarefa"}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Esta ação não pode ser desfeita"})]})]}),e.jsx("p",{className:"text-gray-700 dark:text-gray-300 mb-6",children:"Tem certeza que deseja excluir esta tarefa? Todos os dados relacionados serão perdidos permanentemente."}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx("button",{onClick:X,className:"flex-1 px-4 py-2 text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-700 rounded-xl hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors",children:"Cancelar"}),e.jsx("button",{onClick:ie,className:"flex-1 px-4 py-2 bg-red-600 text-white rounded-xl hover:bg-red-700 transition-colors",children:"Excluir"})]})]})})}),e.jsxs(w,{children:[re&&j&&e.jsx(h.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center z-50 p-4",onClick:()=>C(!1),children:e.jsxs(h.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},className:"bg-white dark:bg-gray-800 rounded-2xl p-6 max-w-2xl w-full shadow-xl max-h-[90vh] overflow-y-auto",onClick:a=>a.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between mb-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-12 h-12 bg-blue-100 dark:bg-blue-900/30 rounded-full flex items-center justify-center",children:e.jsx(R,{className:"w-6 h-6 text-blue-600 dark:text-blue-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Editar Tarefa"}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Modifique os dados da tarefa"})]})]}),e.jsx("button",{onClick:()=>C(!1),className:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",children:e.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Título"}),e.jsx("input",{type:"text",defaultValue:j.titulo,className:"w-full px-3 py-2 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Descrição"}),e.jsx("textarea",{rows:3,defaultValue:j.descricao,className:"w-full px-3 py-2 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Status"}),e.jsxs("select",{defaultValue:j.status,className:"w-full px-3 py-2 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white",children:[e.jsx("option",{value:"pendente",children:"Pendente"}),e.jsx("option",{value:"em_andamento",children:"Em Andamento"}),e.jsx("option",{value:"pausada",children:"Pausada"}),e.jsx("option",{value:"concluida",children:"Concluída"}),e.jsx("option",{value:"cancelada",children:"Cancelada"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Prioridade"}),e.jsxs("select",{defaultValue:j.prioridade,className:"w-full px-3 py-2 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white",children:[e.jsx("option",{value:"baixa",children:"Baixa"}),e.jsx("option",{value:"media",children:"Média"}),e.jsx("option",{value:"alta",children:"Alta"}),e.jsx("option",{value:"critica",children:"Crítica"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Responsável"}),e.jsx("input",{type:"text",defaultValue:j.responsavel,className:"w-full px-3 py-2 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Progresso (%)"}),e.jsx("input",{type:"number",min:"0",max:"100",defaultValue:j.progresso,className:"w-full px-3 py-2 bg-white dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400"})]})]})]}),e.jsxs("div",{className:"flex gap-3 mt-6",children:[e.jsx("button",{onClick:()=>C(!1),className:"flex-1 px-4 py-2 text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-700 rounded-xl hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors",children:"Cancelar"}),e.jsx("button",{onClick:()=>{C(!1),O(null)},className:"flex-1 px-4 py-2 bg-blue-600 text-white rounded-xl hover:bg-blue-700 transition-colors",children:"Salvar Alterações"})]})]})})," "]}),B&&$&&e.jsx(Se,{taskId:$,taskTitle:t.find(a=>a.id===$)?.titulo||"Tarefa",isOpen:B,onClose:()=>{U(!1),q(null)}})]})}export{ze as default};
|