1import{u as B,G as $,c as D,t as i,J as n,j as s,L as h,C as c,l,m as d,n as p,d as t,B as r,M as H,h as Y,ar as G,as as J,at as v,S,av as b,aj as X,k as z,aI as F,a7 as K,ad as O,ae as L,b6 as P,I as W,F as Z}from"./index-DCifuJ2A.js";import{i as j,V as f}from"./VerifiedBadge-DztoLJQ1.js";function es(){const[,R]=B(),{user:u,loading:q}=$(),[o,M]=D.useState(""),x=i.useUtils(),{data:g,isLoading:T}=i.friends.getAll.useQuery(void 0,{enabled:!!u}),{data:a,isLoading:U}=i.friends.getPending.useQuery(void 0,{enabled:!!u}),{data:N,isLoading:A}=i.profile.searchUsers.useQuery({query:o},{enabled:o.length>=3}),w=i.friends.add.useMutation({onSuccess:()=>{n.success("Friend request sent!"),x.friends.invalidate()},onError:e=>{n.error(e.message)}}),y=i.friends.accept.useMutation({onSuccess:()=>{n.success("Friend request accepted!"),x.friends.invalidate()}}),k=i.friends.remove.useMutation({onSuccess:()=>{n.success("Friend removed"),x.friends.invalidate()}}),C=i.friends.reject.useMutation({onSuccess:()=>{n.success("Friend request rejected"),x.friends.invalidate()}}),I=i.friends.cancel.useMutation({onSuccess:()=>{n.success("Friend request cancelled"),x.friends.invalidate()},onError:e=>{n.error(e.message)}});return q?s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:79",className:"min-h-screen bg-gradient-to-br from-background via-background to-card flex items-center justify-center",children:s.jsx(h,{"data-loc":"client/src/pages/Friends.tsx:80",className:"h-12 w-12 animate-spin text-primary"})}):u?s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:106",className:"min-h-screen bg-gradient-to-br from-background via-background to-card",children:[s.jsx(Y,{"data-loc":"client/src/pages/Friends.tsx:107"}),s.jsx("main",{"data-loc":"client/src/pages/Friends.tsx:109",className:"container py-8",children:s.jsxs(G,{"data-loc":"client/src/pages/Friends.tsx:110",defaultValue:"friends",className:"space-y-6",children:[s.jsxs(J,{"data-loc":"client/src/pages/Friends.tsx:111",className:"grid w-full max-w-md mx-auto grid-cols-3",children:[s.jsxs(v,{"data-loc":"client/src/pages/Friends.tsx:112",value:"friends",children:["Friends (",g?.length||0,")"]}),s.jsxs(v,{"data-loc":"client/src/pages/Friends.tsx:115",value:"requests",children:["Requests (",a?.received.length||0,")"]}),s.jsxs(v,{"data-loc":"client/src/pages/Friends.tsx:118",value:"search",children:[s.jsx(S,{"data-loc":"client/src/pages/Friends.tsx:119",className:"h-4 w-4 mr-2"}),"Find"]})]}),s.jsx(b,{"data-loc":"client/src/pages/Friends.tsx:125",value:"friends",className:"space-y-4",children:T?s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:127",className:"flex justify-center py-12",children:s.jsx(h,{"data-loc":"client/src/pages/Friends.tsx:128",className:"h-8 w-8 animate-spin text-muted-foreground"})}):!g||g.length===0?s.jsx(c,{"data-loc":"client/src/pages/Friends.tsx:131",children:s.jsxs(t,{"data-loc":"client/src/pages/Friends.tsx:132",className:"py-12 text-center",children:[s.jsx(X,{"data-loc":"client/src/pages/Friends.tsx:133",className:"h-16 w-16 mx-auto mb-4 text-muted-foreground"}),s.jsx("h2",{"data-loc":"client/src/pages/Friends.tsx:134",className:"text-2xl font-bold mb-2",children:"No Friends Yet"}),s.jsx("p",{"data-loc":"client/src/pages/Friends.tsx:135",className:"text-muted-foreground mb-6",children:"Search for users to add them as friends"})]})}):s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:141",className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:g.filter(e=>e!==null).map(e=>s.jsxs(c,{"data-loc":"client/src/pages/Friends.tsx:143",children:[s.jsx(l,{"data-loc":"client/src/pages/Friends.tsx:144",children:s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:145",className:"flex items-center gap-3",children:[s.jsx(z,{"data-loc":"client/src/pages/Friends.tsx:146",href:`/profile/${e.username}`,children:s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:147",className:"w-12 h-12 rounded-full bg-muted flex items-center justify-center overflow-hidden cursor-pointer hover:ring-2 hover:ring-primary transition-all",children:e.avatarUrl?s.jsx("img",{"data-loc":"client/src/pages/Friends.tsx:149",src:e.avatarUrl,alt:e.displayName,className:"w-full h-full object-cover"}):s.jsx(F,{"data-loc":"client/src/pages/Friends.tsx:151",className:"h-6 w-6 text-muted-foreground"})})}),s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:155",className:"flex-1 min-w-0",children:[s.jsx(z,{"data-loc":"client/src/pages/Friends.tsx:156",href:`/profile/${e.username}`,children:s.jsxs(d,{"data-loc":"client/src/pages/Friends.tsx:157",className:"text-base truncate hover:text-primary curs
1or-pointer transition-colors flex items-center gap-1",children:[e.displayName,j(e)&&s.jsx(f,{"data-loc":"client/src/pages/Friends.tsx:159",size:"md"})]})}),s.jsxs(p,{"data-loc":"client/src/pages/Friends.tsx:162",className:"text-xs",children:["@",e.username]})]})]})}),s.jsx(t,{"data-loc":"client/src/pages/Friends.tsx:168",children:s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:169",className:"flex gap-2",children:[s.jsxs(r,{"data-loc":"client/src/pages/Friends.tsx:170",variant:"default",size:"sm",className:"flex-1 gap-1.5",onClick:()=>R(`/inbox?partner=${e.id}`),children:[s.jsx(K,{"data-loc":"client/src/pages/Friends.tsx:176",className:"h-4 w-4"}),"Message"]}),s.jsx(r,{"data-loc":"client/src/pages/Friends.tsx:179",variant:"destructive",size:"sm",className:"flex-1",onClick:()=>k.mutate({friendId:e.id}),disabled:k.isPending,children:"Remove"})]})})]},e.id))})}),s.jsx(b,{"data-loc":"client/src/pages/Friends.tsx:197",value:"requests",className:"space-y-6",children:U?s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:199",className:"flex justify-center py-12",children:s.jsx(h,{"data-loc":"client/src/pages/Friends.tsx:200",className:"h-8 w-8 animate-spin text-muted-foreground"})}):s.jsxs(s.Fragment,{children:[a&&a.received.length>0&&s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:206",className:"space-y-3",children:[s.jsxs("h3",{"data-loc":"client/src/pages/Friends.tsx:207",className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider",children:["Incoming (",a.received.length,")"]}),s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:208",className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:a.received.map(e=>s.jsxs(c,{"data-loc":"client/src/pages/Friends.tsx:210",children:[s.jsx(l,{"data-loc":"client/src/pages/Friends.tsx:211",children:s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:212",className:"flex items-center gap-3",children:[s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:213",className:"w-12 h-12 rounded-full bg-muted flex items-center justify-center overflow-hidden",children:e.user?.avatarUrl?s.jsx("img",{"data-loc":"client/src/pages/Friends.tsx:215",src:e.user.avatarUrl,alt:e.user.name||"User",className:"w-full h-full object-cover"}):s.jsx(F,{"data-loc":"client/src/pages/Friends.tsx:217",className:"h-6 w-6 text-muted-foreground"})}),s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:220",className:"flex-1 min-w-0",children:s.jsxs(d,{"data-loc":"client/src/pages/Friends.tsx:221",className:"text-base flex items-center gap-1",children:[s.jsx("span",{"data-loc":"client/src/pages/Friends.tsx:222",className:"truncate",children:e.user?.username||e.user?.name||"Unknown User"}),j(e.user)&&s.jsx(f,{"data-loc":"client/src/pages/Friends.tsx:223",size:"sm"})]})})]})}),s.jsxs(t,{"data-loc":"client/src/pages/Friends.tsx:228",className:"flex gap-2",children:[s.jsxs(r,{"data-loc":"client/src/pages/Friends.tsx:229",variant:"default",size:"sm",className:"flex-1",onClick:()=>y.mutate({requestId:e.requestId}),disabled:y.isPending,children:[s.jsx(O,{"data-loc":"client/src/pages/Friends.tsx:236",className:"h-4 w-4 mr-1"}),"Accept"]}),s.jsxs(r,{"data-loc":"client/src/pages/Friends.tsx:239",variant:"outline",size:"sm",className:"flex-1",onClick:()=>C.mutate({requestId:e.requestId}),disabled:C.isPending,children:[s.jsx(L,{"data-loc":"client/src/pages/Friends.tsx:246",className:"h-4 w-4 mr-1"}),"Decline"]})]})]},e.requestId))})]}),a&&a.sent.length>0&&s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:258",className:"space-y-3",children:[s.jsxs("h3",{"data-loc":"client/src/pages/Friends.tsx:259",className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider",children:["Sent (",a.sent.length,")"]}),s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:260",className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:a.sent.map(e=>s.jsxs(c,{"data-loc":"client/src/pages/Friends.tsx:262",children:[s.jsx(l,{"data-loc":"client/src/pages/Friends.tsx:263",children:s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:264",className:"flex items-center gap-3",children:[s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:265",className:"w-12 h-12 rounded-full bg-muted flex items-center justify-center overflow-hidden",children:e.user?.avatarUrl?s.jsx("img",{"data-loc":"client/src/pages/Friends.tsx:267",src:e.user.avatarUrl,alt:e.user.name||"User",className:"w-full h-full object-cover"}):s.jsx(F,{"data-loc":"client/src/pages/Friends.tsx:269",className:"h-6 w-6 text-muted-foreground"})}),s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:272",className:"flex-1 min-w-0",children:[s.jsxs(d,{"data-loc":"client/src/pages/Friends.tsx:273",className:"text-base flex items-center gap-1",children:[s.jsx("span",{"data-loc":"client/src/pages/Friends.tsx:274",className:"truncate",children:e.user?.username||e.user?.name||"Unknown User"}),j(e.user)&&s.jsx(f,{"data-loc":"client/src/pages/Friends.tsx:275",size:"sm"})]}),s.jsx(p,{"data-loc":"client/src/pages/Friends.tsx:277",className:"text-xs",children:"Awaiting response"})]})]})}),s.jsx(t,{"data-loc":"client/src/pages/Friends.tsx:281",children:s.jsxs(r,{"data-loc":"client/src/pages/Friends.tsx:282",variant:"outline",size:"sm",className:"w-full",onClick:()=>I.mutate({requestId:e.requestId}),disabled:I.isPending,children:[s.jsx(L,{"data-loc":"client/src/pages/Friends.tsx:289",className:"h-4 w-4 mr-1"}),"Cancel Request"]})})]},e.requestId))})]}),(!a||a.received.length===0&&a.sent.length===0)&&s.jsx(c,{"data-loc":"client/src/pages/Friends.tsx:301",children:s.jsxs(t,{"data-loc":"client/src/pages/Friends.tsx:302",className:"py-12 text-center",children:[s.jsx(P,{"data-loc":"client/src/pages/Friends.tsx:303",className:"h-16 w-16 mx-auto mb-4 text-muted-foreground"}),s.jsx("h2",{"data-loc":"client/src/pages/Friends.tsx:304",className:"text-2xl font-bold mb-2",children:"No Pending Requests"}),s.jsx("p",{"data-loc":"client/src/pages/Friends.tsx:305",className:"text-muted-foreground",children:"You don't have any friend requests at the moment"})]})})]})}),s.jsxs(b,{"data-loc":"client/src/pages/Friends.tsx:316",value:"search",className:"space-y-4",children:[s.jsxs(c,{"data-loc":"client/src/pages/Friends.tsx:317",children:[s.jsxs(l,{"data-loc":"client/src/pages/Friends.tsx:318",children:[s.jsx(d,{"data-loc":"client/src/pages/Friends.tsx:319",children:"Find Friends"}),s.jsx(p,{"data-loc":"client/src/pages/Friends.tsx:320",children:"Search for users by username or name"})]}),s.jsx(t,{"data-loc":"client/src/pages/Friends.tsx:322",children:s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:323",className:"relative",children:[s.jsx(S,{"data-loc":"client/src/pages/Friends.tsx:324",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),s.jsx(W,{"data-loc":"client/src/pages/Friends.tsx:325",placeholder:"Search users...",value:o,onChange:e=>M(e.target.value),className:"pl-10"})]})})]}),A?s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:336",className:"flex justify-center py-12",children:s.jsx(h,{"data-loc":"client/src/pages/Friends.tsx:337",className:"h-8 w-8 animate-spin text-muted-foreground"})}):o.length<3?s.jsx(c,{"data-loc":"client/src/pages/Friends.tsx:340",children:s.jsx(t,{"data-loc":"client/src/pages/Friends.tsx:341",className:"py-12 text-center text-muted-foreground",children:"Type at least 3 characters to search"})}):!N||N.length===0?s.jsx(c,{"data-loc":"client/src/pages/Friends.tsx:346",children:s.jsxs(t,{"data-loc":"client/src/pages/Friends.tsx:347",className:"py-12 text-center text-muted-foreground",children:['No users found matching "',o,'"']})}):s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:352",className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:N.map(e=>{const Q=e.id===u.id,E=g?.some(m=>m?.id===e.id),V=a?.sent.some(m=>m.user?.id===e.id)||a?.received.some(m=>m.user?.id===e.id);return s.jsxs(c,{"data-loc":"client/src/pages/Friends.tsx:359",children:[s.jsx(l,{"data-loc":"client/src/pages/Friends.tsx:360",children:s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:361",className:"flex items-center gap-3",children:[s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:362",className:"w-12 h-12 rounded-full bg-muted flex items-center justify-center overflow-hidden",children:e.avatarUrl?s.jsx("img",{"data-loc":"client/src/pages/Friends.tsx:364",src:e.avatarUrl,alt:e.name,className:"w-full h-full object-cover"}):s.jsx(F,{"data-loc":"client/src/pages/Friends.tsx:366",className:"h-6 w-6 text-muted-foreground"})}),s.jsxs("div",{"data-loc":"client/src/pages/Friends.tsx:369",className:"flex-1 min-w-0",children:[s.jsxs(d,{"data-loc":"client/src/pages/Friends.tsx:370",className:"text-base flex items-center gap-1",children:[s.jsx("span",{"data-loc":"client/src/pages/Friends.tsx:371",className:"truncate",children:e.username||e.name}),j(e)&&s.jsx(f,{"data-loc":"client/src/pages/Friends.tsx:372",size:"sm"})]}),e.bio&&s.jsx(p,{"data-loc":"client/src/pages/Friends.tsx:375",className:"line-clamp-2 text-xs",children:e.bio})]})]})}),s.jsx(t,{"data-loc":"client/src/pages/Friends.tsx:382",children:Q?s.jsx(r,{"data-loc":"client/src/pages/Friends.tsx:384",variant:"outline",size:"sm",className:"w-full",disabled:!0,children:"This is you"}):E?s.jsx(r,{"data-loc":"client/src/pages/Friends.tsx:388",variant:"outline",size:"sm",className:"w-full",disabled:!0,children:"Already friends"}):V?s.jsx(r,{"data-loc":"client/src/pages/Friends.tsx:392",variant:"outline",size:"sm",className:"w-full",disabled:!0,children:"Request pending"}):s.jsxs(r,{"data-loc":"client/src/pages/Friends.tsx:396",variant:"default",size:"sm",className:"w-full",onClick:()=>w.mutate({friendId:e.id}),disabled:w.isPending,children:[s.jsx(P,{"data-loc":"client/src/pages/Friends.tsx:403",className:"h-4 w-4 mr-2"}),"Add Friend"]})})]},e.id)})})]})]})}),s.jsx(Z,{"data-loc":"client/src/pages/Friends.tsx:417",onFeedbackClick:()=>{}})]}):s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:87",className:"min-h-screen bg-gradient-to-br from-background via-background to-card",children:s.jsx("div",{"data-loc":"client/src/pages/Friends.tsx:88",className:"container py-8",children:s.jsxs(c,{"data-loc":"client/src/pages/Friends.tsx:89",children:[s.jsxs(l,{"data-loc":"client/src/pages/Friends.tsx:90",children:[s.jsx(d,{"data-loc":"client/src/pages/Friends.tsx:91",children:"Authentication Required"}),s.jsx(p,{"data-loc":"client/src/pages/Friends.tsx:92",children:"Please log in to manage your friends."})]}),s.jsx(t,{"data-loc":"client/src/pages/Friends.tsx:94",children:s.jsx(r,{"data-loc":"client/src/pages/Friends.tsx:95",asChild:!0,children:s.jsx("a",{"data-loc":"client/src/pages/Friends.tsx:96",href:H(),children:"Log In"})})})]})})})}export{es 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.