2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
import{j as a}from"./query-vendor-BLVqILA6.js";import{c as f,d as v,r as c,L as j}from"./router-vendor-D4by-_6Z.js";import{T as w}from"./ThemeToggle-Cryh6OOS.js";import{o as N,m as z,F as _,w as i,k as C,l as b,ab as $,j as D,X as T,q as S}from"./ui-vendor-CyRvbSfR.js";import"./react-vendor-CqRd3GwO.js";function u(d){const s=d.replace(/\D/g,"");return s.length<=2?s:s.length<=4?`${s.slice(0,2)}/${s.slice(2)}`:s.length<=8?`${s.slice(0,2)}/${s.slice(2,4)}/${s.slice(4,8)}`:`${s.slice(0,2)}/${s.slice(2,4)}/${s.slice(4,8)}`}const P=[{value:"baixa",label:"Baixa",color:"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300"},{value:"media",label:"Média",color:"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-300"},{value:"alta",label:"Alta",color:"bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-300"},{value:"critica",label:"Crítica",color:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-300"}],I=["Estrutura","Elétrica","Hidráulica","Acabamento","Impermeabilização","Pintura","Alvenaria","Cobertura","Fundação","Outros"];function R(){const{id:d}=f(),s=v(),[g,x]=c.useState(!1),[r,m]=c.useState({}),[t,p]=c.useState({titulo:"",descricao:"",responsavel:"",prioridade:"media",data_inicio:"",data_prazo:"",categoria:"",localizacao:""}),o=(e,l)=>{p(n=>({...n,[e]:l})),r[e]&&m(n=>({...n,[e]:void 0}))},h=()=>{const e={};if(t.titulo.trim()||(e.titulo="Título é obrigatório"),t.descricao.trim()||(e.descricao="Descrição é obrigatória"),t.responsavel.trim()||(e.responsavel="Responsável é obrigatório"),t.data_inicio||(e.data_inicio="Data de início é obrigatória"),t.data_prazo||(e.data_prazo="Data prazo é obrigatória"),t.categoria||(e.categoria="Categoria é obrigatória"),t.data_inicio&&t.data_prazo){const l=new Date(t.data_inicio);new Date(t.data_prazo)<=l&&(e.data_prazo="Data prazo deve ser posterior à data de início")}return m(e),Object.keys(e).length===0},y=async e=>{if(e.preventDefault(),!!h()){x(!0);try{await new Promise(l=>setTimeout(l,1e3)),s(`/obra/${d}/tarefas`)}catch{}finally{x(!1)}}},k=()=>{s(`/obra/${d}/tarefas`)};return a.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:[a.jsx("div",{className:"bg-white/70 dark:bg-gray-800/70 backdrop-blur-md border-b border-gray-200/50 dark:border-gray-700/50 sticky top-0 z-10",children:a.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:a.jsxs("div",{className:"flex items-center justify-between h-16",children:[a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx(j,{to:`/obra/${d}/tarefas`,className:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors",children:a.jsx(N,{className:"w-5 h-5 text-gray-600 dark:text-gray-300"})}),a.jsxs("div",{children:[a.jsx("h1",{className:"text-xl font-bold text-gray-900 dark:text-white",children:"Nova Tarefa"}),a.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:["Obra #",d]})]})]}),a.jsx(w,{})]})})}),a.jsx("div",{className:"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:a.jsx(z.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},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",children:a.jsxs("form",{onSubmit:y,className:"space-y-6",children:[a.jsxs("div",{children:[a.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[a.jsx(_,{className:"w-4 h-4 inline mr-2"}),"Título *"]}),a.jsx("input",{type:"text",value:t.titulo,onChange:e=>o("titulo",e.target.value),className:`w-full px-4 py-3 rounded-xl border ${r.titulo?"border-red-300 dark:border-red-600":"border-gray-300 dark:border-gray-600"} bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm 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`,placeholder:"Digite o título da tarefa"}),r.titulo&&a.jsxs("p",{className:"mt-1 text-sm text-red-600 dark:text-red-400 flex items-center gap-1",children:[a.jsx(i,{className:"w-4 h-4"}),r.titulo]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Descrição *"}),a.jsx("textarea",{value:t.descricao,onChange:e=>o("descricao",e.target.value),rows:4,className:`w-full px-4 py-3 rounded-xl border ${r.descricao?"border-red-300 dark:border-red-600":"border-gray-300 dark:border-gray-600"} bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all resize-none text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400`,placeholder:"Descreva detalhadamente a tarefa a ser executada"}),r.descricao&&a.jsxs("p",{className:"mt-1 text-sm text-red-600 dark:text-red-400 flex items-center gap-1",children:[a.jsx(i,{className:"w-4 h-4"}),r.descricao]})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[a.jsxs("div",{children:[a.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[a.jsx(C,{className:"w-4 h-4 inline mr-2"}),"Responsável *"]}),a.jsx("input",{type:"text",value:t.responsavel,onChange:e=>o("responsavel",e.target.value),className:`w-full px-4 py-3 rounded-xl border ${r.responsavel?"border-red-300 dark:border-red-600":"border-gray-300 dark:border-gray-600"} bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm 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`,placeholder:"Nome do responsável"}),r.responsavel&&a.jsxs("p",{className:"mt-1 text-sm text-red-600 dark:text-red-400 flex items-center gap-1",children:[a.jsx(i,{className:"w-4 h-4"}),r.responsavel]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"Prioridade"}),a.jsx("select",{value:t.prioridade,onChange:e=>o("prioridade",e.target.value),className:"w-full px-4 py-3 rounded-xl border border-gray-300 dark:border-gray-600 bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all text-gray-900 dark:text-white",children:P.map(e=>a.jsx("option",{value:e.value,children:e.label},e.value))})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[a.jsx(b,{className:"w-4 h-4 inline mr-2"}),"Data de Início *"]}),a.jsx("input",{type:"text",value:t.data_inicio,onChange:e=>o("data_inicio",e.target.value),className:`w-full px-4 py-3 rounded-xl border ${r.data_inicio?"border-red-300 dark:border-red-600":"border-gray-300 dark:border-gray-600"} bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm 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`,placeholder:"dd/mm/aaaa",maxLength:10,onInput:e=>{const l=u(e.currentTarget.value);e.currentTarget.value=l,o("data_inicio",l)}}),r.data_inicio&&a.jsxs("p",{className:"mt-1 text-sm text-red-600 dark:text-red-400 flex items-center gap-1",children:[a.jsx(i,{className:"w-4 h-4"}),r.data_inicio]})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[a.jsx(b,{className:"w-4 h-4 inline mr-2"}),"Data Prazo *"]}),a.jsx("input",{type:"text",value:t.data_prazo,onChange:e=>o("data_prazo",e.target.value),className:`w-full px-4 py-3 rounded-xl border ${r.data_prazo?"border-red-300 dark:border-red-600":"border-gray-300 dark:border-gray-600"} bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm 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`,placeholder:"dd/mm/aaaa",maxLength:10,onInput:e=>{const l=u(e.currentTarget.value);e.currentTarget.value=l,o("data_prazo",l)}}),r.data_prazo&&a.jsxs("p",{className:"mt-1 text-sm text-red-600 dark:text-red-400 flex items-center gap-1",children:[a.jsx(i,{className:"w-4 h-4"}),r.data_prazo]})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[a.jsx($,{className:"w-4 h-4 inline mr-2"}),"Categoria *"]}),a.jsxs("select",{value:t.categoria,onChange:e=>o("categoria",e.target.value),className:`w-full px-4 py-3 rounded-xl border ${r.categoria?"border-red-300 dark:border-red-600":"border-gray-300 dark:border-gray-600"} bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all text-gray-900 dark:text-white`,children:[a.jsx("option",{value:"",children:"Selecione uma categoria"}),I.map(e=>a.jsx("option",{value:e,children:e},e))]}),r.categoria&&a.jsxs("p",{className:"mt-1 text-sm text-red-600 dark:text-red-400 flex items-center gap-1",children:[a.jsx(i,{className:"w-4 h-4"}),r.categoria]})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[a.jsx(D,{className:"w-4 h-4 inline mr-2"}),"Localização"]}),a.jsx("input",{type:"text",value:t.localizacao,onChange:e=>o("localizacao",e.target.value),className:"w-full px-4 py-3 rounded-xl border border-gray-300 dark:border-gray-600 bg-white/50 dark:bg-gray-700/50 backdrop-blur-sm 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",placeholder:"Ex: 2º Pavimento, Sala 201"})]})]}),a.jsxs("div",{className:"flex gap-4 pt-6",children:[a.jsxs("button",{type:"button",onClick:k,className:"flex-1 flex items-center justify-center gap-2 py-3 px-6 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 rounded-xl hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors",children:[a.jsx(T,{className:"w-5 h-5"}),"Cancelar"]}),a.jsxs("button",{type:"submit",disabled:g,className:"flex-1 flex items-center justify-center gap-2 py-3 px-6 bg-blue-600 text-white rounded-xl hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[a.jsx(S,{className:"w-5 h-5"}),g?"Salvando...":"Salvar Tarefa"]})]})]})})})]})}export{R as default};
|