HR-ATS-Portal/frontend/dist/assets/TalentPool-CbXp920L.js

3 lines
4.6 KiB
JavaScript

import{d as P,a as S,s as F,g as R,r as u,j as e,I as v,Q as O,E as f,h as _,A as k,S as D,B as I,y as M,z as q,q as B}from"./index-BTPmxtwM.js";import{t as L,A as $,C as H,l as Q}from"./Candidates-DDm6mZmg.js";import"./useMutation-CMO99S-s.js";import"./Modal-B8aWFZt2.js";import"./DataTable-D5imKbZq.js";import"./Tabs-DVZeUemd.js";import"./jobPosts-CNShlpwX.js";const T=100,y=["Applied","Screening","Assessment","Interview","Offer","Hired"],w={PENDING:"Applied",CLOSED:"Applied",PROCESS:"Screening",ONHOLD:"Screening",APPROVED:"Hired",REJECTED:"Rejected"};function G(t){const a=parseInt(t,10);return Number.isFinite(a)?a:null}function z(t,a){const r=t.name||a.name,i=(t.job_posts||[]).map(h=>h.title).find(Boolean),o=w[t.application_status]||a.stage,d=G(t.experience);return{...a,userId:t.user_id,name:r,initials:q(r),color:M(r),email:t.email||a.email,experience:d??a.experience,stage:o,status:o,currentTitle:i||a.currentTitle,jobTitle:i||a.jobTitle}}function J(t,a){if(!a.length)return[];const r=new Map;for(const i of t){const o=i.user_id??`inbox-${i.inbox_id}`;r.has(o)||r.set(o,i)}return[...r.values()].map((i,o)=>z(i,a[o%a.length]))}function ee(){const{toast:t}=P(),{data:a=[]}=S(F("candidates")),r=R("candidates"),[i,o]=u.useState(""),[d,h]=u.useState(""),[N,c]=u.useState(null),[b,x]=u.useState(null),p=S({queryKey:B.candidates.list({limit:T}),queryFn:()=>Q({limit:T})}),g=u.useMemo(()=>J(L(p.data),a),[p.data,a]),C=u.useMemo(()=>g.filter(s=>!(d&&s.department!==d||i&&!(s.name+s.currentCompany+s.skills.join(" ")).toLowerCase().includes(i.toLowerCase()))),[g,i,d]);function A(s){r(n=>n.map(l=>l.id===s.id?{...l,favorite:!l.favorite}:l)),c(n=>n&&n.id===s.id?{...n,favorite:!n.favorite}:n),t(s.favorite?"Removed from favorites":`${s.name} added to favorites`,"success")}function E(s){const n=y.indexOf(s.stage);if(n===-1||n>=y.length-1){t(`${s.name} cannot be advanced further`,"warning");return}const l=y[n+1];r(m=>m.map(j=>j.id===s.id?{...j,stage:l,status:l}:j)),c(m=>m&&m.id===s.id?{...m,stage:l,status:l}:m),t(`${s.name} moved to ${l}`,"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:"Talent Pool"}),e.jsxs("p",{className:"page-sub",children:[g.length," silver-medalists & passive candidates to re-engage"]})]}),e.jsx("div",{className:"page-head-actions",children:e.jsxs("button",{className:"btn btn-primary",onClick:()=>t("Talent campaign created","success"),children:[e.jsx(v,{name:"send"})," Start Campaign"]})})]}),e.jsx("div",{className:"card mb-18",children:e.jsx("div",{className:"card-body",style:{padding:16},children:e.jsxs("div",{className:"toolbar",style:{marginBottom:0},children:[e.jsxs("div",{className:"toolbar-search",children:[e.jsx(v,{name:"search"}),e.jsx("input",{value:i,onChange:s=>o(s.target.value),placeholder:"Search by name, skill, company…"})]}),e.jsxs("select",{className:"select",value:d,onChange:s=>h(s.target.value),children:[e.jsx("option",{value:"",children:"All Departments"}),O.map(s=>e.jsx("option",{children:s},s))]})]})})}),e.jsx("div",{className:"grid g-3",children:C.length===0?e.jsx("div",{style:{gridColumn:"1/-1"},children:p.isError?e.jsx(f,{title:"Could not load talent pool",children:_(p.error,"Please try again.")}):p.isPending?e.jsx(f,{title:"Loading talent pool…",children:"Fetching candidates."}):e.jsx(f,{title:"No talent found",children:"Try a different search or department."})}):C.map(s=>e.jsx("div",{className:"card",style:{cursor:"pointer"},onClick:()=>c(s),children:e.jsxs("div",{className:"card-body",children:[e.jsxs("div",{className:"flex items-center gap-12",style:{marginBottom:12},children:[e.jsx(k,{name:s.name,initials:s.initials,color:s.color,className:"avatar-lg"}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsx("div",{className:"lr-title",children:s.name}),e.jsx("div",{className:"lr-sub",children:s.currentTitle})]}),e.jsx(D,{score:s.aiScore})]}),e.jsx("div",{className:"k-tags",style:{marginBottom:12},children:s.skills.slice(0,4).map(n=>e.jsx("span",{className:"tag",children:n},n))}),e.jsx("div",{className:"divider",style:{margin:"12px 0"}}),e.jsxs("div",{className:"flex items-center",style:{justifyContent:"space-between"},children:[e.jsxs("span",{className:"cell-sub",children:[e.jsx(v,{name:"briefcase"})," ",s.experience," yrs"]}),e.jsx("span",{className:"cell-sub",children:s.currentCompany}),e.jsx(I,{className:"b-gray",children:s.source})]})]})},s.id))}),b&&e.jsx($,{candidate:b,onClose:()=>x(null),onProfile:s=>{x(null),c(s)}}),N&&e.jsx(H,{candidate:N,onClose:()=>c(null),onAdvance:E,onToggleFav:A,onAtsMatch:s=>{c(null),x(s)}})]})}export{ee as default};
//# sourceMappingURL=TalentPool-CbXp920L.js.map