1var T=Object.defineProperty;var l=(n,c)=>T(n,"name",{value:c,configurable:!0});import{a as M,u as U,r as t,j as e}from"./react-vendor-2YofpKMw.js";import{u as q,P as u,C as A,f as D,B as d,E as g,h as J,j as $,k as z,m as G,n as H,y as P,bd as O,p as m,aR as V,G as K,M as Y,be as S,d as Q,a as L}from"./index-DIDR4tgv.js";import{g as W,d as X}from"./changemakerService-DjO_vjGh.js";import{g as Z,s as ee}from"./cache-DQ9CcvAP.js";import{m as se,d as ae}from"./performance-BD8sBgRG.js";import{S as i}from"./separator-Bds6tDju.js";import{S as N}from"./skeleton-BhGsVW-L.js";import{A as re,b as le,c as te,d as ie,e as ne,f as ce,g as oe,h as de}from"./alert-dialog-r1ac6z9y.js";import{S as xe}from"./square-pen-DzN6tJr4.js";const we=l(()=>{const{id:n}=M(),c=U(),{user:f}=q(),[s,v]=t.useState(null),[E,h]=t.useState(!0),[b,j]=t.useState(null),[w,y]=t.useState(!1),[F,p]=t.useState(!1),x=t.useRef(null),C=t.useCallback(async()=>{if(!n){j("Profile ID is required"),h(!1);return}x.current&&x.current.abort(),x.current=new AbortController;try{h(!0),j(null);const a=`changemaker_profile_${n}`,r=Z(a);r&&(v(r),h(!1));const o=await se("loadChangemakerProfile",()=>ae(`changemaker_profile_${n}`,()=>W(n)));o?(v(o),ee(a,o,{})):j("Profile not found")}catch(a){if((a==null?void 0:a.name)==="AbortError")return;j("Failed to load profile")}finally{h(!1)}},[n]);t.useEffect(()=>{C()},[C]),t.useEffect(()=>()=>{x.current&&x.current.abort()},[]);const k=f&&s&&s.userId===f.uid,I=l(()=>{c("/changemakers/create")},"handleEdit"),R=l(async()=>{var a,r;if(s){y(!0);try{await X(s.id)&&(L.success("Profile deleted",{description:"Your changemaker profile has been deleted."}),c("/jobs"))}catch(o){const _=((r=(a=o.response)==null?void 0:a.data)==null?void 0:r.message)||o.message||"Failed to delete profile";L.error("Error",{description:_})}finally{y(!1),p(!1)}}},"handleDelete"),B=l(a=>a.split(" ").map(r=>r.charAt(0)).join("").toUpperCase().slice(0,2),"getInitials");return E?e.jsx(u,{children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 py-6",children:e.jsxs("div",{className:"space-y-6",children:[e.jsx(N,{className:"h-24 w-full"}),e.jsx(N,{className:"h-64 w-full"}),e.jsx(N,{className:"h-32 w-full"})]})})}):b||!s?e.jsx(u,{children:e.jsx("div",{className:"max-w-4xl mx-auto px-4 py-6",children:e.jsx(A,{children:e.jsxs(D,{className:"pt-6 text-center",children:[e.jsx("p",{className:"text-gray-600",children:b||"Profile not found"}),e.jsx(d,{onClick:l(()=>c("/jobs"),"onClick"),className:"mt-4",children:"Back to Jobs"})]})})})}):e.jsx(u,{children:e.jsxs("div",{className:"max-w-4xl mx-auto px-4 py-6",children:[e.jsxs(d,{variant:"ghost",onClick:l(()=>c("/jobs"),"onClick"),className:"mb-6",children:[e.jsx(g,{className:"h-4 w-4 mr-2 rotate-180"}),"Back to Jobs"]}),e.jsxs(A,{children:[e.jsx(J,{children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex items-start gap-6",children:[e.jsxs($,{className:"h-24 w-24",children:[e.jsx(z,{src:s.avatar,alt:s.name}),e.jsx(G,{className:"bg-blue-100 text-blue-700 text-2xl",children:B(s.name)})]}),e.jsxs("div",{children:[e.jsx(H,{className:"text-3xl mb-2",children:s.name}),e.jsxs("div",{className:"flex items-center gap-4 text-gray-600 mb-3",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(P,{className:"h-4 w-4"}),e.jsx("span",{children:s.location})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(O,{className:"h-4 w-4"}),e.jsx("span",{children:s.experienceLevel})]})]}),e.jsx(m,{variant:"outline",children:s.experienceLevel})]})]}),k&&e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(d,{variant:"outline",size:"sm",onClick:I,children:[e.jsx(xe,{className:"h-4 w-4 mr-1"}),"Edit"]}),e.jsxs(d,{variant:"destructive",size:"sm",onClick:l(()=>p(!0),"onClick"),children:[e.jsx(V,{className:"h-4 w-4 mr-1"}),"Delete"]})]})]})}),e.jsxs(D,{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-2",children:"About"}),e.jsx("p",{className:"text-gray-700 whitespace-pre-wrap",children:s.bio})]}),e.jsx(i,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-3",children:"Skills"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.skills.map((a,r)=>
1e.jsx(m,{variant:"secondary",className:"text-sm py-1 px-3",children:a},r))})]}),e.jsx(i,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-3",children:"Availability"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.availability.map((a,r)=>e.jsx(m,{variant:"outline",className:"text-sm py-1 px-3",children:a},r))})]}),s.preferredLocation&&s.preferredLocation.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(i,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-3",children:"Preferred Locations"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.preferredLocation.map((a,r)=>e.jsxs(m,{variant:"outline",className:"text-sm py-1 px-3",children:[e.jsx(P,{className:"h-3 w-3 mr-1"}),a]},r))})]})]}),s.impactAreas&&s.impactAreas.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(i,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-3",children:"Impact Areas"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.impactAreas.map((a,r)=>e.jsx(m,{variant:"outline",className:"text-sm py-1 px-3",children:a},r))})]})]}),s.portfolioLinks&&s.portfolioLinks.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(i,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-3",children:"Portfolio"}),e.jsx("div",{className:"space-y-2",children:s.portfolioLinks.map((a,r)=>e.jsxs("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-blue-600 hover:text-blue-700 hover:underline",children:[e.jsx(K,{className:"h-4 w-4"}),e.jsx("span",{className:"truncate",children:a}),e.jsx(g,{className:"h-3 w-3"})]},r))})]})]}),s.resumeUrl&&e.jsxs(e.Fragment,{children:[e.jsx(i,{}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-lg mb-3",children:"Resume"}),e.jsxs(d,{variant:"outline",onClick:l(()=>window.open(s.resumeUrl,"_blank"),"onClick"),children:[e.jsx(g,{className:"h-4 w-4 mr-2"}),"View Resume"]})]})]}),!k&&f&&e.jsxs(e.Fragment,{children:[e.jsx(i,{}),e.jsxs("div",{className:"flex gap-3",children:[s.email?e.jsxs(d,{variant:"default",onClick:l(()=>window.location.href=`mailto:${s.email}`,"onClick"),children:[e.jsx(Y,{className:"h-4 w-4 mr-2"}),"Contact"]}):e.jsx("div",{className:"text-sm text-gray-500 italic",children:"Contact information available through job applications"}),e.jsx(d,{variant:"outline",onClick:l(()=>c("/jobs"),"onClick"),children:"View Jobs"})]})]}),e.jsx(i,{}),e.jsx("div",{className:"text-sm text-gray-500",children:e.jsxs("p",{children:["Profile created ",S(new Date(s.createdAt),{addSuffix:!0}),s.updatedAt!==s.createdAt&&e.jsxs("span",{className:"ml-2",children:["⢠Updated ",S(new Date(s.updatedAt),{addSuffix:!0})]})]})})]})]}),e.jsx(re,{open:F,onOpenChange:p,children:e.jsxs(le,{children:[e.jsxs(te,{children:[e.jsx(ie,{children:"Delete Profile"}),e.jsx(ne,{children:"Are you sure you want to delete your changemaker profile? This action cannot be undone."})]}),e.jsxs(ce,{children:[e.jsx(oe,{children:"Cancel"}),e.jsx(de,{onClick:R,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",disabled:w,children:w?e.jsxs(e.Fragment,{children:[e.jsx(Q,{className:"h-4 w-4 mr-2 animate-spin"}),"Deleting..."]}):"Delete"})]})]})})]})})},"ChangemakerProfile");export{we as default};
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.