veza/apps/web/dist_verification/assets/SocialView-BmPOCTMY.js

2 lines
10 KiB
JavaScript
Raw Normal View History

import{a as r,j as e}from"./vendor-react-C9dYU-TK.js";import{t as N}from"./trackService-Dud99AaM.js";import{i as y,l as w,C as b,B as f,S as x}from"./index-BMBS6scK.js";import{T as k,U as S,m as T,r as C,o as E,W as A,C as V,af as F,j as P,g as L,ag as R}from"./vendor-icons-BSV6HBy1.js";import{A as U}from"./avatar-DAue0w7u.js";import{m as p,A as z}from"./vendor-motion-CbAtAbUE.js";import"./vendor-CjLUfV8Y.js";import"./vendor-security-DsrNJhpn.js";import"./vendor-http-CctT3C58.js";import"./vendor-router-Dr0ZB7zf.js";import"./vendor-tanstack-C4XaEYj2.js";import"./vendor-utils-D0JLFg89.js";import"./vendor-i18n-PN7w4axr.js";function H(){const{playTrack:s}=y(),[n,t]=r.useState("feed"),[o,l]=r.useState([]),[c,i]=r.useState(!0),[u,d]=r.useState(!1),m=r.useCallback(async()=>{i(!0),d(!1);try{const a=await N.list({limit:10,sort_by:"created_at"});l(a.tracks)}catch(a){w.error("Error loading feed tracks",{error:a instanceof Error?a.message:String(a),stack:a instanceof Error?a.stack:void 0}),d(!0)}finally{i(!1)}},[]);return r.useEffect(()=>{m()},[m]),{activeTab:n,setActiveTab:t,feedTracks:o,loading:c,error:u,retry:m,playTrack:s}}function I({activeTab:s,onTabChange:n,onProfileClick:t}){return e.jsxs("div",{className:"hidden lg:block lg:col-span-3 space-y-8",children:[e.jsxs(b,{variant:"glass",className:"p-0 overflow-hidden border-white/5 bg-black/20 backdrop-blur-xl transition-shadow duration-[var(--sumi-duration-normal)]",children:[e.jsx("div",{className:"h-20 bg-gradient-gaming"}),e.jsxs("div",{className:"px-4 pb-4",children:[e.jsx("button",{type:"button",className:"appearance-none bg-transparent border-0 p-0 block w-full text-left relative -mt-10 mb-3 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-full",onClick:t,children:e.jsx("div",{className:"w-20 h-20 rounded-full border-4 border-border overflow-hidden bg-muted",children:e.jsx("img",{src:"https://picsum.photos/id/237/200/200",alt:"",className:"w-full h-full object-cover"})})}),e.jsx("h3",{className:"font-bold text-foreground text-lg tracking-tight",children:"My Profile"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"View your stats"})]})]}),e.jsx(b,{variant:"glass",className:"p-2 border-white/5 bg-black/20 backdrop-blur-xl",children:e.jsxs("nav",{className:"space-y-1",children:[e.jsxs(f,{variant:s==="feed"?"outline":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>n("feed"),children:[e.jsx(k,{className:"w-4 h-4"})," Fresh Tracks"]}),e.jsxs(f,{variant:"ghost",size:"sm",className:"w-full justify-start",onClick:()=>n("communities"),children:[e.jsx(S,{className:"w-4 h-4"})," Communities"]})]})})]})}function M({track:s,onPlay:n}){const[t,o]=r.useState(!1),[l,c]=r.useState(s.like_count??0),[i,u]=r.useState(!1),[d,m]=r.useState(!1),a=r.useRef(null),h=r.useRef(null);r.useEffect(()=>()=>{a.current&&clearTimeout(a.current),h.current&&clearTimeout(h.current)},[]);const j=r.useCallback(()=>{o(g=>!g),c(g=>t?g-1:g+1),t||(u(!0),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>u(!1),400))},[t]),v=r.useCallback(()=>{m(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>m(!1),1500)},[]);return e.jsx(p.div,{whileHover:{scale:1.005},transition:{duration:.2},className:"mb-4",children:e.jsxs(b,{variant:"glass",className:"p-0 overflow-hidden border-white/5 bg-black/20 backdrop-blur-xl hover:border-primary/20 transition-all duration-[var(--sumi-duration-normal)]",children:[e.jsxs("div",{className:"p-4 flex items-center gap-3",children:[e.jsx(U,{src:s.coverUrl,alt:s.artist,fallback:s.artist,size:"md",status:"online"}),e.jsxs("div",{children:[e.jsx("button",{className:"font-bold text-foreground text-sm hover:underline transition-colors text-left",children:s.artist}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"uploaded a new track"})]}),e.jsx(f,{variant:"ghost",size:"sm",className:"ml-auto text-muted-foreground hover:text-foreground",children:e.jsx(T,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"px-4 pb-4",c