2 lines
16 KiB
JavaScript
2 lines
16 KiB
JavaScript
|
|
import{j as e,a as j}from"./vendor-react-YMhRUmcb.js";import{u as h,a as L}from"./vendor-tanstack-CoFNL2zy.js";import{u as A,f as F,a as S,g as E}from"./users-DDt25V_U.js";import{t as D}from"./tracks-C_h6xkxF.js";import{p as z,P as K}from"./PlaylistCard-Due74KZ6.js";import{s as M}from"./socialService-rJN8QISo.js";import{d as B,L as y}from"./vendor-router-DX94Iu-2.js";import{g as Q}from"./vendor-utils-4BWoYre8.js";import{B as k,u as V,g as $,p as H,C as f,e as P}from"./index-D2uzyr9g.js";import{A as _}from"./avatar-DwZKme3D.js";import{g as R,an as J,ao as W,ap as Y,aq as G,U as O,a6 as w,Y as X,a7 as Z,z as I}from"./vendor-icons-DINCNwpk.js";import{T as ee,a as se,b as v,c as N}from"./Tabs-C8UCeQNW.js";import"./vendor-fFnFILYR.js";import"./features-CKIBrJL0.js";function ae(){const{username:a}=B(),{data:s,isLoading:d,error:i}=h({queryKey:["userProfile",a],queryFn:async()=>{if(!a)throw new Error("Username is required");return A.getProfileByUsername(a)},enabled:!!a,retry:!1}),{data:n,isLoading:l}=h({queryKey:["userTracks",s?.id],queryFn:()=>D.list(1,12,{userId:s?.id}),enabled:!!s?.id}),{data:r,isLoading:o}=h({queryKey:["userPosts",s?.id],queryFn:()=>M.getPostsByUser(s.id,1,s),enabled:!!s?.id}),{data:t,isLoading:m}=h({queryKey:["userPlaylists",s?.id],queryFn:()=>z.list(1,12,s?.id),enabled:!!s?.id}),c=s?.first_name||s?.last_name?`${s.first_name||""} ${s.last_name||""}`.trim():s?.username??"",x=c.split(" ").map(p=>p[0]).join("").toUpperCase().slice(0,2),u=s?.created_at!=null?Q(new Date(s.created_at),"MMM yyyy"):null;return{username:a??null,profile:s,isLoading:d,error:i,tracksData:n,isTracksLoading:l,postsData:r,isPostsLoading:o,playlistsData:t,isPlaylistsLoading:m,displayName:c,initials:x,memberSince:u}}function te(){return e.jsxs("div",{className:"h-64 md:h-80 w-full relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-cyan-900/40 via-purple-900/40 to-magenta-900/40"}),e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top,_var(--tw-gradient-stops))] from-white/10 to-transparent opacity-50"}),e.jsx("div",{className:"absolute inset-0 noise opacity-20","aria-hidden":!0})]})}function re(){return e.jsxs("div",{className:"container mx-auto px-4 py-8 flex flex-col items-center justify-center min-h-layout-page text-center",children:[e.jsx("div",{className:"text-9xl mb-4","aria-hidden":!0,children:"👾"}),e.jsx("h2",{className:"text-3xl font-display font-bold text-destructive mb-2",children:"User Not Found"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-md",children:"The signal was lost in the void. We couldn't find the profile you were looking for."}),e.jsx(k,{variant:"outline",className:"mt-8",asChild:!0,children:e.jsx(y,{to:"/dashboard",children:"Return to Base"})})]})}function ie({userId:a,initialFollowing:s=!1,onFollowChange:d,className:i,size:n="default",variant:l}){const{data:r}=V(),{success:o,error:t}=$(),m=L(),[c,x]=j.useState(s),[u,p]=j.useState(!1),{data:g}=h({queryKey:["userProfile",a],queryFn:()=>E(a),enabled:!!a&&a!==r?.id,staleTime:3e4});if(j.useEffect(()=>{g&&g.is_following!==void 0?x(g.is_following):s!==void 0&&x(s)},[g,s]),r?.id===a)return null;const U=async()=>{if(u||!r)return;p(!0);const b=!c;try{b?(await F(a),o("Vous suivez maintenant cet utilisateur")):(await S(a),o("Vous ne suivez plus cet utilisateur")),x(b),d?.(b),m.invalidateQueries({queryKey:["userProfile",a]}),m.invalidateQueries({queryKey:["userProfile"]})}catch(T){const q=H(T).message;t(q)}finally{p(!1)}};if(r?.id===a||!r)return null;const C=l||(c?"outline":"default");return e.jsx(k,{onClick:U,disabled:u,variant:C,size:n,className:i||"min-w-[100px]",children:u?e.jsxs(e.Fragment,{children:[e.jsx(R,{className:"h-4 w-4 animate-spin mr-2"}),c?"Désabonnement...":"Abonnement..."]}):c?e.jsxs(e.Fragment,{children:[e.jsx(J,{className:"h-4 w-4 mr-2"}),"Abonné"]}):e.jsxs(e.Fragment,{children:[e.jsx(W,{className:"h-4 w-4 mr-2"}),"Suivre"]})})}function le({profile:a,displayName:s,initials:d,memberSince:i,tracksCount:n,playlistsCount:l,followersCount:r}){return e.jsx(f,{variant:"glass",
|