2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
|
|
import{j as s,a as N}from"./vendor-react-BHG7lGYR.js";import{c as ss,L as f}from"./vendor-router-D-s5vIeO.js";import{u as q}from"./vendor-tanstack-BzWBL1hV.js";import{C as p,d as E,e as j,B as P,a as G,L as S}from"./index-BWcMVITa.js";import{I as es}from"./input-BGBI2Wze.js";import{T as as,a as ts,b as C,c as k}from"./tabs-DP-eavm_.js";import{P as B,s as rs}from"./PlaylistCard-z0bLl0kY.js";import{i as T}from"./features-6vY6zDlz.js";import{A as X}from"./avatar-B2y8ugWJ.js";import{u as is}from"./useDebounce-Cc7fGPgq.js";import{P as I}from"./Pagination-i598iEQZ.js";import{n as z,X as ls,ab as v,ad as U,F as D}from"./vendor-icons-DaGlTw4_.js";import"./vendor-IYr-MHu4.js";import"./vendor-utils-CgOSfOkx.js";function b({icon:a,title:r,description:i,action:o,className:t,size:c="md"}){const d={sm:"py-6",md:"py-12",lg:"py-16"},m={sm:"h-8 w-8",md:"h-12 w-12",lg:"h-16 w-16"};return s.jsx(p,{className:E(t),children:s.jsxs(j,{className:E("text-center",d[c]),children:[a&&s.jsx("div",{className:"flex justify-center mb-4",children:s.jsx("div",{className:E("text-kodo-content-dim",m[c]),children:a})}),s.jsx("h3",{className:"text-lg font-semibold mb-2 text-white font-display",children:r}),i&&s.jsx("p",{className:"text-sm text-kodo-content-dim mb-4 max-w-md mx-auto",children:i}),o&&s.jsx(P,{onClick:o.onClick,variant:o.variant||"default",size:c==="sm"?"sm":"default",children:o.label})]})})}async function cs(a={}){const r=new URLSearchParams;a.pagination&&(a.pagination.page&&r.append("page",a.pagination.page.toString()),a.pagination.limit&&r.append("limit",a.pagination.limit.toString())),a.filters&&(a.filters.genre&&r.append("genre",a.filters.genre),a.filters.artist&&r.append("artist",a.filters.artist),a.filters.album&&r.append("album",a.filters.album),a.filters.minDuration&&r.append("min_duration",a.filters.minDuration.toString()),a.filters.maxDuration&&r.append("max_duration",a.filters.maxDuration.toString())),a.sort&&(r.append("sort_by",a.sort.field),r.append("sort_order",a.sort.order)),a.search&&r.append("search",a.search);const i=r.toString(),o=`/tracks${i?`?${i}`:""}`,t=await G.get(o);let c=[],d=0,m=1,l=20,n=1;if(t.data&&typeof t.data=="object")if("data"in t.data&&t.data.data&&typeof t.data.data=="object"){const x=t.data.data;x.tracks&&Array.isArray(x.tracks)&&(c=x.tracks),x.pagination&&typeof x.pagination=="object"&&(d=x.pagination.total||0,m=x.pagination.page||1,l=x.pagination.limit||20,n=x.pagination.total_pages||Math.ceil(d/l)||1)}else"tracks"in t.data&&Array.isArray(t.data.tracks)&&(c=t.data.tracks,d=t.data.total||0,m=t.data.page||1,l=t.data.limit||20,n=t.data.totalPages||Math.ceil(d/l)||1);const w=m||a.pagination?.page||1,y=l||a.pagination?.limit||c.length||10,L=n||Math.ceil(d/y)||1;return{data:c,total:d,page:w,limit:y,totalPages:L}}async function ns(a,r={}){return cs({...r,search:a})}async function ds(a){const r=new URLSearchParams;a.query&&r.append("q",a.query),a.page&&r.append("page",a.page.toString()),a.limit&&r.append("limit",a.limit.toString());const i=await G.get(`/users/search?${r.toString()}`);let o=[],t=0;if(i.data&&typeof i.data=="object")if("data"in i.data&&i.data.data&&typeof i.data.data=="object"){const c=i.data.data;c.users&&Array.isArray(c.users)&&(o=c.users),c.pagination&&typeof c.pagination=="object"&&(t=c.pagination.total||0)}else"users"in i.data&&Array.isArray(i.data.users)&&(o=i.data.users,t=i.data.total||0);return{users:o||[],total:t||0,page:a.page||1,limit:a.limit||20}}function ws(){const[a,r]=ss(),[i,o]=N.useState(a.get("q")||""),[t,c]=N.useState(a.get("type")||"all"),[d,m]=N.useState(1),l=20,n=is(i,500);N.useEffect(()=>{const e=new URLSearchParams;n&&e.set("q",n),t!=="all"&&e.set("type",t),r(e,{replace:!0})},[n,t,r]),N.useEffect(()=>{m(1)},[n,t]);const{data:w,isLoading:y,isError:L}=q({queryKey:["searchTracks",n,d,l],queryFn:()=>ns(n,{pagination:{page:d,limit:l}}),enabled:(t==="all"||t==="tracks")&&!!n.trim()}),{data:x,isLoading:R,isError:J}=q({queryKey:["searchPlaylists",n,d,l],queryFn:()=>rs({q:n,page:d,limit:l}),enabled:T("PLAYLIST_SEARCH")&&(t==="all"||t==="playlists")&&!!n.trim(),retry:!1,placeholderDa
|