1import{bG as S,a7 as $,r as n,j as e,k as E,aj as A,L as I,f as C,g as L,h as T,bn as B,a9 as k,aJ as R,aZ as F}from"./index-uxszwAql.js";const f="/".replace(/\/$/,""),j=5e3;function O(t){return t&&[t.firstName,t.lastName].filter(Boolean).join(" ").trim()||"Member"}function P(t){if(!t)return"M";const i=t.firstName?.[0]??"",s=t.lastName?.[0]??"";return(i+s).trim()||"M"}function _(){const{memberId:t}=S(),i=$(),s=t?parseInt(t,10):NaN,[o,y]=n.useState(null),[D,w]=n.useState(!0),[x,c]=n.useState(null),[m,V]=n.useState(""),[d,h]=n.useState(!1),p=n.useRef(!1);n.useEffect(()=>{if(p.current=!1,!Number.isFinite(s)||s<=0){c("Invalid member"),w(!1);return}return(async()=>{w(!0),c(null);try{const a=await fetch(`${f}/api/portal/members/${s}/profile`,{credentials:"include"});if(!a.ok){const g=await a.json().catch(()=>({}));throw new Error(g.error||`Could not load member (${a.status})`)}const r=await a.json();if(p.current)return;y(r);const u=await fetch(`${f}/api/portal/connections/status?memberId=${s}`,{credentials:"include"});if(!u.ok)throw new Error("Could not verify connection");const N=await u.json();if(N.state!=="accepted")throw new Error("You can only message members you are connected with");const l=await fetch(`${f}/api/portal/messages/with/${N.otherUserId}`,{credentials:"include"});if(l.status===200){const g=await l.json();if(p.current)return;i(`/portal/messages/${g.conversationId}`,{replace:!0});return}const M=await l.json().catch(()=>({}));if(!(l.status===404&&M.code==="NO_CONVERSATION"))throw new Error(M.error||`Lookup failed (${l.status})`)}catch(a){p.current||c(a instanceof Error?a.message:"Failed to open conversation")}finally{p.current||w(!1)}})(),()=>{p.current=!0}},[s,i]);const v=async()=>{const a=m.trim();if(!(!a||d||!Number.isFinite(s))){h(!0),c(null);try{const r=await fetch(`${f}/api/portal/messages/start`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({recipientMemberId:s,body:a})});if(!r.ok){const N=await r.json().catch(()=>({}));throw new Error(N.error||`Failed to send (${r.status})`)}const u=await r.json();i(`/portal/messages/${u.conversationId}`,{replace:!0})}catch(r){c(r instanceof Error?r.message:"Failed to send message")}finally{h(!1)}}},b=O(o);return e.jsxDEV("div",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:146:4","data-component-name":"div",className:"max-w-3xl mx-auto space-y-4",children:[e.jsxDEV("div",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:147:6","data-component-name":"div",className:"flex items-center gap-3 pb-3 border-b border-border",children:[e.jsxDEV(E,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:148:8","data-component-name":"Button",variant:"ghost",size:"sm",className:"gap-1.5",onClick:()=>i(-1),children:[e.jsxDEV(A,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:149:10","data-component-name":"ArrowLeft",className:"w-4 h-4"},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:149,columnNumber:11},this),"Back"]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:148,columnNumber:9},this),o&&e.jsxDEV(I,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:153:10","data-component-name":"Link",to:`/portal/profile/view/${s}`,className:"flex items-center gap-2 hover:opacity-80 transition-opacity",children:[e.jsxDEV(C,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:157:12","data-component-name":"Avatar",className:"w-8 h-8",children:[e.jsxDEV(L,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:158:14","data-component-name":"AvatarImage",src:o.profileImageUrl??"",alt:b},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:158,columnNumber:15},this),e.jsxDEV(T,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:159:14","data-component-name":"AvatarFallback",className:"bg-primary/10 text-primary text-xs",children:P(o)},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:159,columnNumber:15},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:157,columnNumber:13},this),e.jsxDEV("div",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:163:12","data-component-name":"div",className:"flex flex-col leading-tight",children:[e.jsxDEV("span",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:164:14","data-component-name":"span",className:"text-sm font-medium text-foreground",children:b},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:164,columnNumber:15},this),o.jobTitle&&e.jsxDEV("span",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:166:16","data-component-name":"span",className:"text-xs text-muted-foreground",children:o.jobTitle},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:166,columnNumber:17},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:163,columnNumber:13},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:153,columnNumber:11},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:147,columnNumber:7},this),x&&e.jsxDEV("div",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:174:8","data-component-name":"div",className:"rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-sm text-destructive flex items-start gap-2",children:[e.jsxDEV(B,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:175:10","data-component-name":"AlertCircle",className:"w-4 h-4 mt-0.5 shrink-0"},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:175,columnNumber:11},this),e.jsxDEV("span",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:176:10","data-component-name":"span",children:x},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:176,columnNumber:11},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:174,columnNumber:9},this),D?e.jsxDEV("div",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:181:8","data-component-name":"div",className:"rounded-lg border border-border bg-card p-8 text-center text-muted-foreground text-sm",children:[e.jsxDEV(k,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:182:10","data-component-name":"Loader2",className:"w-4 h-4 mx-auto mb-2 animate-spin"},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:182,columnNumber:11},this),"Opening conversation..."]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:181,columnNumber:9},this):e.jsxDEV("div",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:186:8","data-component-name":"div",className:"rounded-lg border border-border bg-card p-4 space-y-3",children:[e.jsxDEV("p",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:187:10","data-component-name":"p",className:"text-sm text-muted-foreground",children:["This is the start of your conversation with ",e.jsxDEV("span",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:188:56","data-component-name":"span",className:"font-medium text-foreground",children:b},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:188,columnNumber:57},this),"."]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:187,columnNumber:11},this),e.jsxDEV(R,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:190:10","data-component-name":"Textarea",value:m,onChange:a=>V(a.target.value.slice(0,j)),placeholder:`Write your first message to ${o?.firstName??"this member"}...`,rows:5,disabled:d,onKeyDown:a=>
1{a.key==="Enter"&&!a.shiftKey&&(a.preventDefault(),v())},className:"resize-none"},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:190,columnNumber:11},this),e.jsxDEV("div",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:204:10","data-component-name":"div",className:"flex items-center justify-between",children:[e.jsxDEV("p",{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:205:12","data-component-name":"p",className:"text-[10px] text-muted-foreground",children:["Press Enter to send, Shift+Enter for a new line. ",m.length," / ",j]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:205,columnNumber:13},this),e.jsxDEV(E,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:208:12","data-component-name":"Button",onClick:()=>{v()},disabled:d||!m.trim(),className:"gap-1.5",children:[d?e.jsxDEV(k,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:209:25","data-component-name":"Loader2",className:"w-4 h-4 animate-spin"},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:209,columnNumber:26},this):e.jsxDEV(F,{"data-replit-metadata":"artifacts/web-app/src/pages/portal/NewMessage.tsx:209:72","data-component-name":"Send",className:"w-4 h-4"},void 0,!1,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:209,columnNumber:183},this),"Send message"]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:208,columnNumber:13},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:204,columnNumber:11},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:186,columnNumber:9},this)]},void 0,!0,{fileName:"/home/runner/workspace/artifacts/web-app/src/pages/portal/NewMessage.tsx",lineNumber:146,columnNumber:5},this)}export{_ 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.