1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5974],{29050:(e,t,a)=>{a.d(t,{H0:()=>d.default,Uj:()=>n.default,b_:()=>s.default,g3:()=>i.default,oh:()=>l.default,qs:()=>c.default,uT:()=>o.default}),a(65902),a(14441);var l=a(44557),n=a(80229),i=a(53275);a(96567);var s=a(62718);a(28651);var o=a(48346),d=a(61200),c=a(68791)},75974:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});var l=a(95155),n=a(12115),i=a(20063),s=a(97003),o=a(60588),d=a(28990),c=a(23664),r=a(29050),u=a(18720);function m(e){var t,a;let{data:m}=e,x=(0,i.useParams)(),v=null==x?void 0:x.id,f=Array.isArray(v)?v[0]:v||"",p=(null==m?void 0:m.projectId)||f,h=null==m?void 0:m.projectData,_=null==h?void 0:h.clientPocData,y=(null==h?void 0:h.loadingClientPoc)||!1,b=null==h?void 0:h.addProjectCandidatesMutation,j=null==h?void 0:h.handleUpdateClientContacts,g=Array.isArray(null==m?void 0:m.contacts)?null==m?void 0:m.contacts:(null==m||null==(t=m.contacts)?void 0:t.data)||[],[N]=(0,n.useState)(g),[C,k]=(0,n.useState)([]),w=N.find(e=>!0===e.is_poc),[S,A]=(0,n.use
1State)(null!=(a=null==w?void 0:w.id)?a:"");n.useEffect(()=>{var e;let t=N.find(e=>!0===e.is_poc);A(null!=(e=null==t?void 0:t.id)?e:"")},[N]);let[P,U]=(0,n.useState)(!1),[M,E]=(0,n.useState)(!1),[I,B]=(0,n.useState)(null),z=(0,n.useMemo)(()=>{var e;return(null==_?void 0:_.data)?null==_||null==(e=_.data)?void 0:e.map(e=>{var t;return{id:e.id,name:"".concat(e.first_name||""," ").concat(e.last_name||"").trim()||"Unknown",first_name:e.first_name||"Unknown",last_name:e.last_name||"",designation:e.designation||"Contact",initials:((null==(t=e.first_name)?void 0:t[0])||"U").toUpperCase(),country_code:e.country_code||"",contact_no:e.contact_no||"",...e.email?{email:e.email}:{},...e.contact_no?{phone:(0,o.n4)(e.country_code||"",e.contact_no)}:{}}}):[]},[_]),D=n.useMemo(()=>N.map(e=>e.client_member_id?e.client_member_id:e.id),[N]);n.useEffect(()=>{k(z.filter(e=>D.includes(e.id)))},[z,D]);let F=async e=>{try{B(e);let t=N.find(t=>t.id===e);if(!t){u.oR.error("Contact not found"),B(null);return}let a=t.client_member_id||t.id;j&&await j({client_member_id:a,is_poc:!0}),A(e);try{let e=null==m?void 0:m.onPrimaryUpdated;"function"==typeof e&&await e()}catch(e){}}catch(e){console.error("Failed to set primary contact:",e)}finally{B(null)}},R=async()=>{U(!0);try{var e;if((null==m?void 0:m.onSave)&&await m.onSave({contacts:N,primaryId:S}),C.length>0&&p&&b){let e=C.map(e=>e.id),t=await b.mutateAsync({data:{client_member_ids:e}});(null==t?void 0:t.status_code)===200&&u.oR.success("Candidates added to project successfully")}else C.length>0&&!p&&console.error("No projectId provided, cannot add candidates");null==m||null==(e=m.closeModal)||e.call(m)}catch(e){console.error("Failed to save:",e)}finally{U(!1)}};return(0,l.jsxs)("div",{className:"h-full flex flex-col",children:[M?(0,l.jsx)(r.uT,{loading:y,items:z,selectedItems:C,onSelectionChange:e=>{k(e.map(e=>z.find(t=>t.id===e.id)).filter(Boolean))},placeholder:"Search and select contacts..."}):(0,l.jsxs)("button",{className:"cursor-pointer inline-flex items-center gap-2 text-sm text-text-secondary hover:text-text-primary",onClick:()=>E(!0),children:[(0,l.jsx)("span",{className:"text-lg leading-none",children:"+"}),"Add"]}),(0,l.jsx)("div",{className:"flex-1 overflow-y-auto pr-1 mt-1",children:(0,l.jsx)("div",{className:"space-y-3",children:null==N?void 0:N.map(e=>{var t,a;return(0,l.jsx)("div",{className:"rounded-xl border border-text-stroke p-3 ",children:(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsxs)("div",{className:"w-10 h-10 rounded-full bg-gray-200 flex items-center justify-center text-sm font-semibold text-gray-700 capitalize",children:[null==e||null==(t=e.first_name)?void 0:t[0],null==e||null==(a=e.last_name)?void 0:a[0]]}),(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsxs)("div",{className:"text-sm font-semibold text-text-primary truncate capitalize",children:[e.first_name," ",e.last_name]}),(0,l.jsx)("div",{className:"text-xs text-text-placeholder",children:null==e?void 0:e.designation})]}),(0,l.jsxs)("div",{className:"flex flex-col items-center text-xs",children:[(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)("button",{className:"p-2 rounded-full hover:bg-gray-100",onClick:()=>window.open("mailto:".concat(e.email),"_blank"),"aria-label":"Send email to ".concat(e.email),children:(0,l.jsx)(c.A,{className:"w-5 h-5 text-text-primary"})}),(0,l.jsx)("button",{className:"p-2 rounded-full hover:bg-gray-100",onClick:()=>window.open((0,o.$k)(e.country_code||"",e.contact_no||""),"_blank"),"aria-label":"Call ".concat(e.first_name," ").concat(e.last_name),children:(0,l.jsx)(d.A,{icon:"/PhoneIcon.svg",className:" text-text-primary"})})]}),S===e.id?(0,l.jsx)("span",{className:"px-2 py-1 rounded-full text-text-primary bg-text-stroke",children:"Primary"}):(0,l.jsx)("button",{className:"px-2 py-1 rounded-md text-text-secondary hover:bg-gray-50 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",onClick:()=>F(e.id),disabled:I===e.id,children:I===e.id?"Setting...":"Set Primary"})]})]})},e.id)})})}),(0,l.jsxs)("div",{className:"pb-8 flex gap-3",children:[(0,l.jsx)(s.Button,{onClick:R,disabled:P,className:"px-6",children:P?"Saving...":"Save"}),(0,l.jsx)(s.Button,{variant:"outline",onClick:()=>{var e;return null==m||null==(e=m.closeModal)?void 0:e.call(m)},disabled:P,className:"px-6",children:"Cancel"})]})]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.