1 line
5.2 KiB
JavaScript
1 line
5.2 KiB
JavaScript
import{a as t,C as x,d as f,e as h}from"./index-BWcMVITa.js";import{r as d}from"./features-6vY6zDlz.js";import{j as e}from"./vendor-react-BHG7lGYR.js";import{L as y}from"./vendor-router-D-s5vIeO.js";import{ab as w,l as b,F as g,aA as k}from"./vendor-icons-DaGlTw4_.js";async function C(a){return(await t.post("/playlists",a)).data.playlist}async function P(a){return(await t.get(`/playlists/${a}`)).data.playlist}async function D(a,s){return(await t.put(`/playlists/${a}`,s)).data.playlist}async function L(a){await t.delete(`/playlists/${a}`)}async function T(a=1,s=20,n,i,o){const l=Math.max(s,1),c={page:Math.max(a,1),limit:l};return n&&(c.user_id=n),i&&(c.sort_by=i),o&&(c.sort_order=o),(await t.get("/playlists",{params:c})).data}async function A(a,s){return(await t.post(`/playlists/${a}/collaborators`,s)).data}async function E(a,s){await t.delete(`/playlists/${a}/collaborators/${s}`)}async function M(a,s,n){await t.put(`/playlists/${a}/collaborators/${s}`,n)}async function R(a){return d("PLAYLIST_SEARCH"),(await t.get("/playlists/search",{params:a})).data}async function S(a){return d("PLAYLIST_SHARE"),(await t.post(`/playlists/${a}/share`)).data.share_link}async function F(a,s){await t.put(`/playlists/${a}/tracks/reorder`,s)}async function I(a,s){await t.delete(`/playlists/${a}/tracks/${s}`)}async function q(a){return d("PLAYLIST_RECOMMENDATIONS"),Promise.resolve({recommendations:[]})}async function K(a){return(await t.get(`/playlists/${a}/collaborators`)).data.collaborators||[]}async function Y(a,s){await t.post(`/playlists/${a}/tracks`,{track_id:s})}async function H(a){return{message:(await t.post(`/playlists/${a}/follow`)).data.message||"Playlist followed",is_following:!0}}async function z(a){return{message:(await t.delete(`/playlists/${a}/follow`)).data.message||"Playlist unfollowed",is_following:!1}}async function O(a){const s=await P(a);return{is_following:s.is_following??!1,follower_count:s.follower_count??0}}function U({playlist:a,className:s,onClick:n,selectable:i=!1,selected:o=!1,onSelect:l}){const u=r=>{if(i&&l){r.preventDefault(),r.stopPropagation(),l(a,!o);return}n&&(r.preventDefault(),n(a))},c=r=>{if(i&&l&&(r.key==="Enter"||r.key===" ")){r.preventDefault(),r.stopPropagation(),l(a,!o);return}n&&(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),n(a))},p=r=>{r.preventDefault(),r.stopPropagation(),l&&l(a,!o)},m=e.jsx(x,{className:f("cursor-pointer active:opacity-90 transition-opacity duration-200","touch-manipulation",i&&o&&"ring-2 ring-blue-500 border-kodo-steel",s),children:e.jsxs(h,{className:"p-0",children:[e.jsxs("div",{className:"relative aspect-square bg-gradient-to-br from-purple-500 to-pink-500 overflow-hidden",children:[a.cover_url?e.jsx("img",{src:a.cover_url,alt:`Couverture de la playlist ${a.title}`,className:"w-full h-full object-cover"}):e.jsx("div",{className:"w-full h-full flex items-center justify-center",role:"img","aria-label":`Pas de couverture pour la playlist ${a.title}`,children:e.jsx(w,{className:"w-16 h-16 text-white/50","aria-hidden":"true"})}),i&&e.jsx("div",{className:"absolute top-2 left-2 z-10",children:e.jsx("button",{type:"button",onClick:p,className:f("w-6 h-6 rounded-full border-2 flex items-center justify-center transition-all","touch-manipulation min-h-[24px] min-w-[24px]",o?"bg-kodo-cyan border-kodo-cyan text-white":"bg-white/90 dark:bg-kodo-graphite/90 border-kodo-steel dark:border-kodo-steel text-transparent hover:border-kodo-steel/50"),"aria-label":o?`Désélectionner ${a.title}`:`Sélectionner ${a.title}`,"aria-checked":o,role:"checkbox",children:o&&e.jsx(b,{className:"w-4 h-4","aria-hidden":"true"})})}),e.jsx("div",{className:"absolute top-2 right-2",children:a.is_public?e.jsxs("div",{className:"bg-kodo-lime/100/80 text-white px-2 py-1 rounded-full text-xs flex items-center gap-1","aria-label":"Playlist publique",children:[e.jsx(g,{className:"w-3 h-3","aria-hidden":"true"}),"Public"]}):e.jsxs("div",{className:"bg-kodo-steel/80 text-white px-2 py-1 rounded-full text-xs flex items-center gap-1","aria-label":"Playlist privée",children:[e.jsx(k,{className:"w-3 h-3","aria-hidden":"true"}),"Privé"]})})]}),e.jsxs("div",{className:"p-4 sm:p-4",children:[e.jsx("h3",{className:"font-semibold text-base sm:text-lg truncate mb-1",id:`playlist-title-${a.id}`,children:a.title}),a.description&&e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground line-clamp-2 mb-2",id:`playlist-description-${a.id}`,children:a.description}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-1 sm:gap-0 text-xs sm:text-sm text-muted-foreground",children:[e.jsxs("span",{"aria-describedby":`playlist-title-${a.id}`,children:[a.track_count," track",a.track_count!==1?"s":""]}),a.user&&e.jsxs("span",{className:"truncate sm:ml-2","aria-label":`Créée par ${a.user.username}`,children:["par ",a.user.username]})]})]})]})});return i?e.jsx("div",{onClick:u,onKeyDown:c,role:"button",tabIndex:0,"aria-label":`${o?"Désélectionner":"Sélectionner"} la playlist ${a.title}`,className:"touch-manipulation",children:m}):e.jsx(y,{to:`/playlists/${a.id}`,onClick:u,onKeyDown:c,"aria-label":`Voir la playlist ${a.title}`,className:"touch-manipulation",children:m})}export{U as P,E as a,M as b,Y as c,L as d,S as e,A as f,P as g,H as h,z as i,O as j,q as k,T as l,C as m,K as n,I as o,F as r,R as s,D as u};
|