3 lines
3.1 KiB
JavaScript
3 lines
3.1 KiB
JavaScript
import{d as A,u as D,a as p,s as v,g as C,r,j as e,I,A as y,S as T}from"./index-BTPmxtwM.js";const j=[{name:"Applied",color:"var(--stage-1)"},{name:"Screening",color:"var(--stage-2)"},{name:"Assessment",color:"var(--stage-3)"},{name:"Interview",color:"var(--stage-4)"},{name:"Offer",color:"var(--stage-5)"},{name:"Hired",color:"var(--stage-6)"},{name:"Rejected",color:"var(--stage-7)"}];function O(){const{toast:h}=A(),u=D(),{data:l=[]}=p(v("candidates")),{data:x=[]}=p(v("jobs")),N=C("candidates"),[d,f]=r.useState(""),[c,o]=r.useState(null),[b,i]=r.useState(null),g=r.useMemo(()=>d?l.filter(a=>a.jobId===d):l,[l,d]),k=r.useMemo(()=>{const a=Object.fromEntries(j.map(n=>[n.name,[]]));for(const n of g)a[n.stage]&&a[n.stage].push(n);return a},[g]);function S(a){i(null);const n=c;if(o(null),!n)return;const s=l.find(t=>t.id===n);!s||s.stage===a||(N(t=>t.map(m=>m.id===n?{...m,stage:a,status:a}:m)),h(`${s.name} moved to ${a}`,"success"))}return e.jsxs("div",{className:"page",children:[e.jsxs("div",{className:"page-head",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"page-title",children:"Pipeline"}),e.jsx("p",{className:"page-sub",children:"Drag candidates between stages to update their status"})]}),e.jsxs("div",{className:"page-head-actions",children:[e.jsxs("select",{className:"select",value:d,onChange:a=>f(a.target.value),children:[e.jsx("option",{value:"",children:"All Jobs"}),x.filter(a=>a.status==="Open").map(a=>e.jsx("option",{value:a.id,children:a.title},a.id))]}),e.jsxs("button",{className:"btn btn-primary",onClick:()=>u("/candidates",{state:{openAdd:!0}}),children:[e.jsx(I,{name:"plus"})," Add Candidate"]})]})]}),e.jsx("div",{className:"kanban",children:j.map(a=>{const n=k[a.name]??[];return e.jsxs("div",{className:"kanban-col",children:[e.jsxs("div",{className:"kanban-col-head",children:[e.jsx("span",{className:"k-dot",style:{background:a.color}}),e.jsx("h4",{children:a.name}),e.jsx("span",{className:"k-count",children:n.length})]}),e.jsx("div",{className:`kanban-cards${b===a.name?" drag-over":""}`,onDragOver:s=>{s.preventDefault(),i(a.name)},onDragLeave:()=>i(s=>s===a.name?null:s),onDrop:s=>{s.preventDefault(),S(a.name)},children:n.map(s=>e.jsxs("div",{className:`k-card${c===s.id?" dragging":""}`,draggable:!0,onDragStart:t=>{o(s.id),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",s.id)},onDragEnd:()=>{o(null),i(null)},onClick:()=>{c||u("/candidates",{state:{openCandidate:s.id}})},children:[e.jsxs("div",{className:"k-card-top",children:[e.jsx(y,{name:s.name,initials:s.initials,color:s.color}),e.jsxs("div",{children:[e.jsx("div",{className:"kc-name",children:s.name}),e.jsx("div",{className:"kc-role",children:s.currentTitle})]})]}),e.jsx("div",{className:"kc-role",children:s.jobTitle}),e.jsx("div",{className:"k-tags",children:s.skills.slice(0,3).map(t=>e.jsx("span",{className:"tag",children:t},t))}),e.jsxs("div",{className:"k-card-meta",children:[e.jsx("span",{className:"cell-sub",children:s.currentCompany}),e.jsx(T,{score:s.aiScore})]})]},s.id))})]},a.name)})})]})}export{j as KANBAN_STAGES,O as default};
|
|
//# sourceMappingURL=Pipeline-Bhzm15UM.js.map
|