PageSourceSearch

https://maxskills.io/assets/AdminMasterClasses-DrUEC2g0.js

js maxskills.io collected 2026-09-24 15:04:15 UTC 6,988 bytes, 1 lines download raw bytes

1import{u as L,a as q,r as g,c as A,d as f,j as e,H as r,X as D,L as y,O as o,S as F,f as R,g as k,h as B,i as _,a2 as P,I as Q,B as H,ax as K,J as V,t as u,s as h}from"./index-BJijipAU.js";import{T as z,a as U,b as m,c as n,d as $,e as l}from"./table-BiiUHJv2.js";import{r as G,a as J}from"./locale-CY-vkBv4.js";import{T as O,a as X}from"./TrilingualRichEditor-CeeyiQx4.js";import{S as Y}from"./save-DmrMcl30.js";import"./i18n-DlcS6BNz.js";import"./index-paNpr7jU.js";import"./italic-HTJ71vCE.js";const S=()=>({title:{fr:"",ar:"",en:""},description:{fr:"",ar:"",en:""},scheduled_at:"",duration_minutes:"60",youtube_live_url:"",google_meet_url:"",audience:"all"});function re(){const{i18n:p}=L("lms"),b=q(),[w,x]=g.useState("list"),[c,N]=g.useState(null),[a,i]=g.useState(S()),{data:C,isLoading:T}=A({queryKey:["admin-master-classes"],queryFn:()=>h.get("/api/v1/admin/master-classes").then(s=>s.data),enabled:w==="list"}),d=C?.data??[],j=f({mutationFn:s=>c?h.put(`/api/v1/admin/master-classes/${c}`,s):h.post("/api/v1/admin/master-classes",s),onSuccess:()=>{u.success(c?"Mise à jour":"Master Class créée"),b.invalidateQueries({queryKey:["admin-master-classes"]}),v()},onError:()=>u.error("Erreur")}),E=f({mutationFn:s=>h.delete(`/api/v1/admin/master-classes/${s}`),onSuccess:()=>{u.success("Supprimée"),b.invalidateQueries({queryKey:["admin-master-classes"]})},onError:()=>u.error("Erreur")}),v=()=>{i(S()),N(null),x("list")},M=s=>{N(s.id),i({title:s.title??{fr:"",ar:"",en:""},description:s.description??{fr:"",ar:"",en:""},scheduled_at:s.scheduled_at?.slice(0,16)??"",duration_minutes:String(s.duration_minutes??60),youtube_live_url:s.youtube_live_url??"",google_meet_url:s.google_meet_url??"",audience:s.audience??"all"}),x("form")},I=s=>{s.preventDefault(),j.mutate({...a,duration_minutes:Number(a.duration_minutes)})};return w==="form"?e.jsxs("form",{onSubmit:I,className:"space-y-6 w-full",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("h1",{className:"text-2xl font-bold text-white",children:c?"Modifier":"Nouvelle Master Class"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(r,{type:"button",variant:"outline",onClick:v,className:"border-white/10 text-white/60",children:[e.jsx(D,{className:"h-4 w-4 me-1"})," Annuler"]}),e.jsxs(r,{type:"submit",disabled:j.isPending,className:"bg-primary text-white font-bold",children:[j.isPending?e.jsx(y,{className:"h-4 w-4 animate-spin"}):e.jsx(Y,{className:"h-4 w-4 me-1"}),"Enregistrer"]})]})]}),e.jsxs("div",{className:"bg-[#1e1f25] border border-white/10 rounded-2xl p-5 space-y-4",children:[e.jsx(O,{label:"Titre",required:!0,value:a.title,onChange:s=>i(t=>({...t,title:s}))}),e.jsx(X,{label:"Description",value:a.description,onChange:s=>i(t=>({...t,description:s}))}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs text-white/50",children:"Date / heure"}),e.jsx(o,{type:"datetime-local",required:!0,value:a.scheduled_at,onChange:s=>i(t=>({...t,scheduled_at:s.target.value})),className:"bg-[#000216] border-white/10 text-white"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs text-white/50",children:"Durée (minutes)"}),e.jsx(o,{type:"number",min:"15",value:a.duration_minutes,onChange:s=>i(t=>({...t,duration_minutes:s.target.value})),className:"bg-[#000216] border-white/10 text-white"})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs text-white/50",children:"YouTube Live URL"}),e.jsx(o,{value:a.youtube_live_url,onChange:s=>i(t=>({...t,youtube_live_url:s.target.value})),placeholder:"https://youtube.com/live/...",className:"bg-[#000216] border-white/10 text-white"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs text-white/50",children:"Google Meet URL"}),e.jsx(o,{value:a.google_meet_url,onChange:s=>i(t=>({...t,google_meet_url:s.target.value})),placeholder:"https://meet.google.com/...",className:"bg-[#000216] border-white/10 text-white"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-xs text-white/50",children:"Audience"}),e.jsxs(F,{value:a.audience,onValueChange:s=>i(t=>({...t,audience:s})),children:[e.jsx(R,{className:"bg-[#000216] border-white/10 text-white h-9 text-sm",children:e.jsx(k,{})}),e.jsxs(B,{className:"bg-[#1e1f25] border-white/10 text-white",children:[e.jsx(_,{value:"all",children:"Tous"}),e.jsx(_,{value:"enrolled",children:"Inscrits seulement"})]})]})]})]})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[e.jsx(P,{className:"h-5 w-5 text-primary"})," Master Classes"]}
1),e.jsxs("p",{className:"text-white/40 text-sm",children:[d.length," master class",d.length!==1?"es":""]})]}),e.jsxs(r,{onClick:()=>x("form"),className:"bg-primary hover:bg-primary/90 text-white font-bold",children:[e.jsx(Q,{className:"h-4 w-4 me-2"})," Nouvelle"]})]}),e.jsx("div",{className:"border border-white/10 rounded-2xl overflow-hidden bg-[#1e1f25]/30",children:e.jsxs(z,{children:[e.jsx(U,{className:"bg-[#1e1f25]",children:e.jsxs(m,{className:"border-white/10 hover:bg-transparent",children:[e.jsx(n,{className:"text-white/50",children:"Titre"}),e.jsx(n,{className:"text-white/50",children:"Date"}),e.jsx(n,{className:"text-white/50",children:"Durée"}),e.jsx(n,{className:"text-white/50",children:"Audience"}),e.jsx(n,{className:"text-white/50 text-end",children:"Actions"})]})}),e.jsx($,{children:T?e.jsx(m,{children:e.jsx(l,{colSpan:5,className:"text-center py-10",children:e.jsx(y,{className:"h-5 w-5 animate-spin text-primary mx-auto"})})}):d.length===0?e.jsx(m,{children:e.jsx(l,{colSpan:5,className:"text-center py-10 text-white/30",children:"Aucune master class."})}):d.map(s=>e.jsxs(m,{className:"border-white/5 hover:bg-white/5",children:[e.jsx(l,{className:"text-white font-medium text-sm",children:G(s.title,p.language)}),e.jsx(l,{className:"text-white/60 text-sm",children:J(s.scheduled_at,p.language,{dateStyle:"medium",timeStyle:"short"})}),e.jsxs(l,{className:"text-white/40 text-sm",children:[s.duration_minutes," min"]}),e.jsx(l,{children:e.jsx(H,{variant:"outline",className:s.audience==="enrolled"?"border-blue-500/30 text-blue-400 text-xs":"border-white/10 text-white/40 text-xs",children:s.audience==="all"?"Tous":"Inscrits"})}),e.jsx(l,{className:"text-end",children:e.jsxs("div",{className:"flex items-center justify-end gap-1",children:[e.jsx(r,{variant:"ghost",size:"icon",className:"h-8 w-8 text-white/30 hover:text-white",onClick:()=>M(s),children:e.jsx(K,{className:"h-4 w-4"})}),e.jsx(r,{variant:"ghost",size:"icon",className:"h-8 w-8 text-white/30 hover:text-red-400",onClick:()=>{confirm("Supprimer ?")&&E.mutate(s.id)},children:e.jsx(V,{className:"h-4 w-4"})})]})})]},s.id))})]})})]})}export{re as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.