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

2 lines
10 KiB
JavaScript
Raw Normal View History

2026-02-07 19:36:48 +00:00
import{a as u,j as a}from"./vendor-react-YMhRUmcb.js";import{a as i,l as b,x as N,k as _,C as j,B as m}from"./index-D2uzyr9g.js";import{aC as S,w as T,a0 as C,Y as z,a8 as U}from"./vendor-icons-DINCNwpk.js";import{G as k}from"./vendor-fFnFILYR.js";import{S as p}from"./skeleton-BPDNnZ8E.js";import"./vendor-router-DX94Iu-2.js";import"./vendor-tanstack-CoFNL2zy.js";import"./vendor-utils-4BWoYre8.js";const y=1024*1024*2,w={uploadTrack:async(e,s,t)=>{const r=Math.ceil(e.size/y),h=await i.post("/tracks/initiate",{filename:e.name,total_chunks:r,file_size:e.size,title:s.title,artist:s.artist,album:s.album,genre:s.genre}),{upload_id:c}=h.data;b.info(`[UPLOAD] Upload initiated with ID: ${c}`,{filename:e.name,totalChunks:r});for(let n=0;n<r;n++){const d=n*y,x=Math.min(d+y,e.size),l=e.slice(d,x),g=new FormData;g.append("chunk",l),g.append("index",n.toString()),g.append("upload_id",c);try{await i.post("/tracks/chunk",g,{timeout:3e5,_enableLogging:!1});const f=(n+1)/r*100;t&&t(f)}catch(f){throw b.error(`[UPLOAD] Failed to upload chunk ${n} for ${c}`,{error:f}),f}}const o=await i.post("/tracks/complete",{upload_id:c});return b.info(`[UPLOAD] Upload completed. Track ID: ${o.data.track_id}`),o.data},getTrackStatus:async e=>(await i.get(`/tracks/${e}/status`)).data},$={API_URL:"https://api.veza.com/api/v1"},v=e=>({id:e.id,title:e.title,artist:typeof e.artist=="object"?e.artist.name:e.artist,album:e.album||"Unknown",duration:e.duration_formatted||"0:00",durationSec:e.duration||0,genre:e.genre||"None",year:e.year||new Date().getFullYear(),coverUrl:e.cover_art_path?`${$.API_URL}${e.cover_art_path}`:void 0,cover_art_path:e.cover_art_path,filePath:e.file_path,file_path:e.file_path,file_size:e.file_size||0,format:e.format||"mp3",bitrate:e.bitrate||0,sample_rate:e.sample_rate||0,play_count:e.play_count||0,like_count:e.like_count||0,plays:e.play_count||0,likes:e.like_count||0,created_at:e.created_at,updated_at:e.updated_at,creator_id:e.creator_id,is_public:e.is_public??!0,status:e.status,stream_status:e.stream_status||"pending",stream_manifest_url:e.stream_manifest_url}),E={list:async e=>{const t=(await i.get("/tracks",{params:{...e,query:e?.query||e?.search}})).data;return{tracks:(t.items||[]).map(v),pagination:{total:t.total,page:t.page,limit:t.limit,total_pages:t.total_pages,has_next:t.has_next,has_prev:t.has_prev}}},search:async e=>({tracks:(await i.get("/tracks/search",{params:{query:e}})).data.map(v)}),get:async e=>{const s=await i.get(`/tracks/${e}`,{validateSchema:N});return{track:v(s.data)}},update:async(e,s)=>{const t={title:s.title,artist:s.artist,album:s.album,genre:s.genre,is_public:s.is_public},r=await i.put(`/tracks/${e}`,t,{validateSchema:N});return{track:v(r.data)}},delete:async e=>i.delete(`/tracks/${e}`),like:async e=>i.post(`/tracks/${e}/like`),unlike:async e=>i.delete(`/tracks/${e}/like`),recordPlay:async e=>i.post(`/tracks/${e}/play`),download:async e=>(await i.get(`/tracks/${e}/download`,{responseType:"blob"})).data,upload:async(e,s,t)=>await w.uploadTrack(e,s,t),getStatus:async e=>await w.getTrackStatus(e)};function D(){const{playTrack:e}=_(),[s,t]=u.useState("feed"),[r,h]=u.useState([]),[c,o]=u.useState(!0),[n,d]=u.useState(!1),x=u.useCallback(async()=>{o(!0),d(!1);try{const l=await E.list({limit:10,sort_by:"created_at"});h(l.tracks)}catch(l){b.error("Error loading feed tracks",{error:l instanceof Error?l.message:String(l),stack:l instanceof Error?l.stack:void 0}),d(!0)}finally{o(!1)}},[]);return u.useEffect(()=>{x()},[x]),{activeTab:s,setActiveTab:t,feedTracks:r,loading:c,error:n,retry:x,playTrack:e}}function F({activeTab:e,onTabChange:s,onProfileClick:t}){return a.jsxs("div",{className:"hidden lg:block lg:col-span-3 space-y-8",children:[a.jsxs(j,{variant:"glass",className:"p-0 overflow-hidden border-white/5 bg-black/20 backdrop-blur-xl hover-glow-cyan transition-shadow duration-300",children:[a.jsx("div",{className:"h-20 bg-gradient-gaming"}),a.jsxs("div",{className:"px-4 pb-4",children:[a.jsx("div",{className:"relative -mt-10 mb-3 cursor-pointer",onClick:t,onKeyDown:r=>r.key==="Enter"&&t(),role:"button",tabIndex:0,chi