1import{r as i,j as e}from"./vendor-react-DfNKQ8f8.js";import{s as d,m as ve,S as Z,q as ie}from"./index-D8Lws9_6.js";import{f as ee,a as G,s as Ee}from"./streamRecorder-CEdSxUIU.js";import{u as te,l as F}from"./AdminApp-BNpQRKVT.js";import{aq as oe,m as re,h as w,ap as W,c0 as De,aM as ne,D as ae,l as Re,ar as je,a4 as de,q as le,c1 as me,c2 as se,c3 as Pe,s as Ve,bP as ye}from"./vendor-lucide-JpPJh0Qs.js";import"./vendor-supabase-BnxgsA-X.js";function Le(){const{adminUser:r}=te(),[p,y]=i.useState(null),[D,V]=i.useState(""),[R,N]=i.useState(""),[b,x]=i.useState("idle"),[_,z]=i.useState(0),[I,t]=i.useState(null),[o,m]=i.useState(null),[h,j]=i.useState(0),[k,L]=i.useState(null),[$,M]=i.useState([]),[U,T]=i.useState(null),[O,S]=i.useState(!1),Y=$.filter(a=>a.status==="recording"&&a.label?.includes("[auto:")).length,H=i.useRef(null),s=i.useRef(null),g=i.useRef(null),v=i.useRef(0);i.useEffect(()=>{let a=!1,n=!1,l=0,u=null;const P=5e3;async function E(){if(n)return;const A=Date.now();if(A-l<P){u||(u=window.setTimeout(()=>{u=null,E()},P-(A-l)));return}n=!0,l=Date.now();try{const[xe,fe]=await Promise.all([d.from("request_settings").select("*").eq("id",1).maybeSingle(),d.from("stream_recordings").select("*").order("started_at",{ascending:!1}).limit(50)]);if(a)return;const Q=xe.data??null;y(Q),Q?.stream_url&&V(Q.stream_url),M(fe.data??[])}finally{n=!1}}E();const C=d.channel("admin-stream-recordings").on("postgres_changes",{event:"*",schema:"public",table:"stream_recordings"},()=>E()).subscribe(),c=window.setInterval(E,3e4);return()=>{a=!0,d.removeChannel(C),window.clearInterval(c),u&&window.clearTimeout(u)}},[]),i.useEffect(()=>{if(b!=="recording")return;const a=window.setInterval(()=>{j(Date.now()-v.current)},250);return g.current=a,()=>{g.current&&window.clearInterval(g.current)}},[b]),i.useEffect(()=>{function a(n){(b==="recording"||b==="finishing"||b==="uploading")&&(n.preventDefault(),n.returnValue="")}return window.addEventListener("beforeunload",a),()=>window.removeEventListener("beforeunload",a)},[b]);const f=i.useMemo(()=>D.trim(),[D]);async function q(a){if(!p)return;const n=a.trim()||null;n!==p.stream_url&&(await d.from("request_settings").update({stream_url:n,updated_at:new Date().toISOString(),updated_by:r?.user_id??null}).eq("id",1),y({...p,stream_url:n}))}async function B(){if(!f){m("Vul eerst een stream-URL in."),x("error");return}m(null),z(0),j(0),t(null),x("recording"),v.current=Date.now();const{data:a,error:n}=await d.from("stream_recordings").insert({started_by:r?.user_id??null,status:"recording",source_url:f,label:R.trim()||null}).select("*").maybeSingle();if(n||!a){x("error"),m(`Kon opname niet starten: ${n?.message??"onbekende fout"}`);return}s.current=a.id,await F({eventType:"recording.started",targetTable:"stream_recordings",targetId:a.id,actorRole:r?.role??null,payload:{source_url:f,label:R.trim()||null}}),q(f),H.current=Ee({url:f,onProgress:(l,u)=>{z(l),u&&t(u)},onError:async l=>{x("error"),m(l),s.current&&await d.from("stream_recordings").update({status:"error",error_message:l,stopped_at:new Date().toISOString(),stopped_by:r?.user_id??null}).eq("id",s.current)}})}async function ce(){const a=H.current,n=s.current;if(!a||!n)return;x("finishing");let l;try{l=await a.stop()}catch(E){const C=E instanceof Error?E.message:"Stoppen mislukt";x("error"),m(C);return}if(l.bytes===0){x("error"),m("Geen audio opgenomen â stream-URL of CORS niet correct?"),await d.from("stream_recordings").update({status:"error",error_message:"Geen bytes ontvangen",stopped_at:new Date().toISOString(),stopped_by:r?.user_id??null}).eq("id",n);return}x("uploading"),L(0);const u=Se(n,l.extension),{error:P}=await d.storage.from("recordings").upload(u,l.blob,{contentType:l.contentType,upsert:!1});if(L(100),P){x("error"),m(`Upload mislukt: ${P.message}`),await d.from("stream_recordings").update({status:"error",error_message:P.message,stopped_at:new Date().toISOString(),stopped_by:r?.user_id??null,duration_ms:l.durationMs,bytes_recorded:l.bytes,content_type:l.contentType}).eq("id",n);return}await d.from("stream_recordings").update({status:"completed",stopped_at:new Date().toISOString(),stopped_by:r?.user_id??null,duration_ms:l.durationMs,bytes_recorded:l.bytes,file_size:l.blob.size,file_path:u,content_type:l.contentType}).eq("id",n),await F({eventType:"recording.completed",targetTable:"stream_recordings",targetId:n,actorRole:r?.role??null,payload:{bytes:l.bytes,duration_ms:l.durationMs,content_type:l.contentType}}),x("idle"),z(0),j(0),L(null),N(""),H.current=null,s.current=null}async function ue(){const a=$.filter(c=>c.status==="recording"&&c.label?.includes("[auto:"));if(a.length===0||!confirm(`${a.length} vastgelopen auto-opname(s) verwijderen? Dit kan niet ongedaan worden.`))return;S(!0);const n=a.map(c=>c.id),l=a.map(c=>
1c.file_path).filter(Boolean),{data:u}=await d.from("program_episodes").select("id").in("recording_id",n),P=(u??[]).map(c=>c.id);if(P.length>0){const{data:c}=await d.from("episode_segments").select("file_path").in("episode_id",P);for(const A of c??[])A.file_path&&l.push(A.file_path);await d.from("episode_segments").delete().in("episode_id",P)}if(l.length>0){const{error:c}=await d.storage.from("recordings").remove(l);if(c){S(!1),alert(`Bestanden verwijderen mislukt: ${c.message}`);return}}const{error:E}=await d.from("program_episodes").delete().in("recording_id",n);if(E){S(!1),alert(`Afleveringen verwijderen mislukt: ${E.message}`);return}const{error:C}=await d.from("stream_recordings").delete().in("id",n);if(C){S(!1),alert(`Opnames verwijderen mislukt: ${C.message}`);return}await F({eventType:"recording.bulk_cleanup",targetTable:"stream_recordings",actorRole:r?.role??null,payload:{count:n.length}}),S(!1)}async function be(){const a=$.filter(c=>c.status!=="recording");if(a.length===0||!confirm(`Alle ${a.length} afgeronde/mislukte opnames verwijderen? Dit kan niet ongedaan worden.`))return;S(!0);const n=a.map(c=>c.id),l=a.map(c=>c.file_path).filter(Boolean),{data:u}=await d.from("program_episodes").select("id").in("recording_id",n),P=(u??[]).map(c=>c.id);if(P.length>0){const{data:c}=await d.from("episode_segments").select("file_path").in("episode_id",P);for(const A of c??[])A.file_path&&l.push(A.file_path);await d.from("episode_segments").delete().in("episode_id",P)}if(l.length>0){const{error:c}=await d.storage.from("recordings").remove(l);if(c){S(!1),alert(`Bestanden verwijderen mislukt: ${c.message}`);return}}const{error:E}=await d.from("program_episodes").delete().in("recording_id",n);if(E){S(!1),alert(`Afleveringen verwijderen mislukt: ${E.message}`);return}const{error:C}=await d.from("stream_recordings").delete().in("id",n);if(C){S(!1),alert(`Opnames verwijderen mislukt: ${C.message}`);return}await F({eventType:"recording.bulk_delete_all",targetTable:"stream_recordings",actorRole:r?.role??null,payload:{count:n.length}}),S(!1)}async function ge(a){if(confirm("Deze opname stoppen? Het bestand wordt samengevoegd en opgeslagen.")){T(a.id);try{const{data:{session:n}}=await d.auth.getSession(),l=await fetch(`${Z}/functions/v1/stop-recording`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${n?.access_token}`,apikey:ie},body:JSON.stringify({recording_id:a.id})}),u=await l.json();l.ok||alert(`Stoppen mislukt: ${u.error??"onbekende fout"}`)}catch(n){alert(`Stoppen mislukt: ${n instanceof Error?n.message:"onbekende fout"}`)}T(null)}}async function he(a){if(!a.file_path)return;T(a.id);const{data:n,error:l}=await d.storage.from("recordings").createSignedUrl(a.file_path,60*10);if(T(null),l||!n?.signedUrl){alert(`Kon download-link niet maken: ${l?.message??"onbekend"}`);return}const u=document.createElement("a");u.href=n.signedUrl;const P=a.file_path.split(".").pop()||"mp3";u.download=`bee-radio-${new Date(a.started_at).toISOString().replace(/[:.]/g,"-")}.${P}`,document.body.appendChild(u),u.click(),u.remove()}async function pe(a){if(!confirm("Verwijder deze opname definitief?"))return;T(a.id);const n=a.file_path?[a.file_path]:[],{data:l}=await d.from("program_episodes").select("id").eq("recording_id",a.id),u=(l??[]).map(E=>E.id);if(u.length>0){const{data:E}=await d.from("episode_segments").select("file_path").in("episode_id",u);for(const C of E??[])C.file_path&&n.push(C.file_path);await d.from("episode_segments").delete().in("episode_id",u)}if(n.length>0){const{error:E}=await d.storage.from("recordings").remove(n);if(E){T(null),alert(`Bestand verwijderen mislukt: ${E.message}`);return}}const{error:P}=await d.from("stream_recordings").delete().eq("id",a.id);if(T(null),P){alert(`Database-record verwijderen mislukt: ${P.message}`);return}await F({eventType:"recording.deleted",targetTable:"stream_recordings",targetId:a.id,actorRole:r?.role??null})}async function Ne(a,n){await d.from("stream_recordings").update({label:n.trim()||null}).eq("id",a.id)}const K=b==="recording",J=b==="finishing"||b==="uploading";return e.jsxDEV("div",{className:"space-y-6",children:[e.jsxDEV("header",{children:[e.jsxDEV("p",{className:"text-[11px] font-bold uppercase tracking-[0.32em] text-honey-400",children:"Recorder"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:519,columnNumber:9},this),e.jsxDEV("h1",{className:"font-display text-3xl font-bold",children:"Stream opnemen"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:522,columnNumber:9},this),e.jsxDEV("p",{className:"mt-1 max-w-2xl text-sm text-zinc-400",children:"Tap de live Icecast-stream rechtstreeks af. We slaan de losse audio-frames op zoals ze binnenkomen, dus de download is een schone MP3 zonder her-encoding."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:523,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:518,columnNumber:7},this),e.jsxDEV("section",{className:"rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/40 p-6",children:[e.jsxDEV("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]",children:[e.jsxDEV("label",{className:"block",children:[e.jsxDEV("span",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Stream-URL"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:532,columnNumber:13},this),e.jsxDEV("input",{type:"url",value:D,onChange:a=>V(a.target.value),disabled:K||J,placeholder:"https://stream.bee.radio/live",className:"mt-2 w-full rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/60 px-4 py-2.5 text-sm text-zinc-900 dark:text-zinc-100 outline-none placeholder:text-zinc-500 focus:border-honey-500/60 disabled:opacity-60"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:535,columnNumber:13},this),e.jsxDEV("span",{className:"mt-1 block text-[11px] text-zinc-500",children:"CORS moet aanstaan op de Icecast-server, anders weigert de browser de opname."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:543,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:531,columnNumber:11},this),e.jsxDEV("label",{className:"block",children:[e.jsxDEV("span",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Label (optioneel)"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:548,columnNumber:13},this),e.jsxDEV("input",{type:"text",value:R,onChange:a=>N(a.target.value),disabled:K||J,placeholder:"bijv. 'Ochtendshow 10 juni'",className:"mt-2 w-full rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/60 px-4 py-2.5 text-sm text-zinc-900 dark:text-zinc-100 outline-none placeholder:text-zinc-500 focus:border-honey-500/60 disabled:opacity-60"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:551,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:547,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:530,columnNumber:9},this),e.jsxDEV("div",{className:"mt-6 flex flex-wrap items-center gap-4",children:[!K&&!J&&e.jsxDEV("button",{type:"button",onClick:B,className:"inline-flex items-center gap-2 rounded-full bg-rose-500 px-6 py-3 text-sm font-bold uppercase tracking-[0.18em] text-white shadow-[0_15px_45px_-15px_rgba(244,63,94,0.7)] transition hover:bg-rose-400",children:[e.jsxDEV(oe,{size:16},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:569,columnNumber:15},this),"Start opname"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:564,columnNumber:13},this),K&&e.jsxDEV("button",{type:"button",onClick:ce,className:"inline-flex items-center gap-2 rounded-full bg-zinc-100 px-6 py-3 text-sm font-bold uppercase tracking-[0.18em] text-zinc-900 transition hover:bg-white",children:[e.jsxDEV(re,{size:16,fill:"currentColor"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:579,columnNumber:15},this),"Stop & opslaan"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:574,columnNumber:13},this),J&&e.jsxDEV("span",{className:"inline-flex items-center gap-2 rounded-full bg-honey-500/15 px-5 py-2.5 text-xs font-bold uppercase tracking-[0.18em] text-honey-700 dark:text-honey-200",children:[e.jsxDEV(w,{size:14,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:585,columnNumber:15}
1,this),b==="finishing"?"Afronden...":"Uploaden naar opslag..."]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:584,columnNumber:13},this),(K||J)&&e.jsxDEV("div",{className:"flex flex-wrap gap-3 text-xs text-zinc-300",children:[e.jsxDEV(X,{label:"Tijd",value:ee(h)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:592,columnNumber:15},this),e.jsxDEV(X,{label:"Grootte",value:G(_)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:593,columnNumber:15},this),e.jsxDEV(X,{label:"Format",value:I?.split(";")[0]??"..."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:594,columnNumber:15},this),b==="recording"&&e.jsxDEV("span",{className:"inline-flex items-center gap-2 rounded-full border border-rose-500/40 bg-rose-500/10 px-3 py-1.5 font-bold uppercase tracking-[0.18em] text-rose-700 dark:text-rose-200",children:[e.jsxDEV("span",{className:"relative flex h-2 w-2",children:[e.jsxDEV("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-rose-500 opacity-75"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:598,columnNumber:21},this),e.jsxDEV("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-rose-500"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:599,columnNumber:21},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:597,columnNumber:19},this),"Live opname"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:596,columnNumber:17},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:591,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:562,columnNumber:9},this),o&&e.jsxDEV("div",{className:"mt-4 flex items-start gap-2 rounded-xl bg-red-100 dark:bg-red-500/10 px-4 py-3 text-sm text-red-800 dark:text-red-200",children:[e.jsxDEV(W,{size:16,className:"mt-0.5 shrink-0"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:610,columnNumber:13},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"font-semibold",children:"Opname mislukte"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:612,columnNumber:15},this),e.jsxDEV("p",{className:"text-red-700 dark:text-red-300/80",children:o},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:613,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:611,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:609,columnNumber:11},this),k!==null&&e.jsxDEV("div",{className:"mt-4 h-1.5 overflow-hidden rounded-full bg-zinc-200 dark:bg-white/10",children:e.jsxDEV("div",{className:"h-full bg-honey-500 transition-all",style:{width:`${k}%`}},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:620,columnNumber:13},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:619,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:529,columnNumber:7},this),e.jsxDEV(_e,{},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:628,columnNumber:7},this),e.jsxDEV(ke,{},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:630,columnNumber:7},this),e.jsxDEV(we,{},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:632,columnNumber:7},this),e.jsxDEV(ze,{},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:634,columnNumber:7},this),e.jsxDEV("section",{children:[e.jsxDEV("div",{className:"mb-3 flex items-end justify-between",children:[e.jsxDEV("div",{children:[e.jsxDEV("h2",{className:"font-display text-xl font-bold",children:"Eerdere opnames"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:639,columnNumber:13},this),e.jsxDEV("p",{className:"text-sm text-zinc-400",children:"Klik op download om een tijdelijke link (10 min) te genereren."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:640,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:638,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-2",children:[Y>0&&e.jsxDEV("button",{type:"button",onClick:ue,disabled:O,className:"inline-flex items-center gap-1.5 rounded-full border border-rose-500/40 bg-rose-500/10 px-4 py-2 text-[11px] font-bold uppercase tracking-[0.18em] text-rose-700 dark:text-rose-200 transition hover:bg-rose-500/20 disabled:opacity-50",children:[O?e.jsxDEV(w,{size:12,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:652,columnNumber:29},this):e.jsxDEV(De,{size:12},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:652,columnNumber:78},this),Y," vastgelopen opruimen"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:646,columnNumber:15},this),$.some(a=>a.status!=="recording")&&e.jsxDEV("button",{type:"button",onClick:be,disabled:O,className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-300 bg-zinc-100 px-4 py-2 text-[11px] font-bold uppercase tracking-[0.18em] text-zinc-700 transition hover:bg-zinc-200 disabled:opacity-50 dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-200 dark:hover:bg-zinc-700",children:[O?e.jsxDEV(w,{size:12,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:663,columnNumber:29},this):e.jsxDEV(ne,{size:12},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:663,columnNumber:78},this),"Alles verwijderen"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:657,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:644,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:637,columnNumber:9},this),$.length===0?e.jsxDEV("div",{className:"rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/40 p-12 text-center",children:[e.jsxDEV(ae,{size:28,className:"mx-auto text-zinc-500"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:672,columnNumber:13},this),e.jsxDEV("p",{className:"mt-3 font-display text-lg font-bold",children:"Nog geen opnames"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:673,columnNumber:13},this),e.jsxDEV("p",{className:"mt-1 text-sm text-zinc-500",children:'Druk op "Start opname" om de eerste registratie van de stream te bewaren.'},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:674,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:671,columnNumber:11},this):e.jsxDEV("div",{className:"space-y-2",children:$.map(a=>e.jsxDEV($e,{rec:a,busy:U===a.id,onDownload:()=>he(a),onDelete:()=>pe(a),onStop:()=>ge(a),onLabel:n=>Ne(a,n)},a.id,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:681,columnNumber:15},this))},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:679,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:636,columnNumber:7},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:517,columnNumber:5},this)}function ze(){const[r,p]=i.useState(!1),[y,D]=i.useState(null);async function V(){p(!0),D(null);try{const R=await fetch(`${Z}
1/functions/v1/auto-record-scheduler`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({force:!0})}),N=await R.json();R.ok?N.skipped?D("Overgeslagen: niet aan het begin van een segment."):N.started>0?D(`${N.started} uur-opname(s) gestart voor ${String(N.hour).padStart(2,"0")}:00.`):D("Geen programma's met auto-opname actief op dit moment."):D(`Fout: ${N.error??"onbekend"}`)}catch(R){D(`Fout: ${R instanceof Error?R.message:"onbekend"}`)}p(!1)}return e.jsxDEV("section",{className:"rounded-3xl border border-zinc-200/80 bg-white dark:border-white/10 dark:bg-zinc-900/40 p-6",children:[e.jsxDEV("div",{className:"flex items-center justify-between",children:[e.jsxDEV("div",{children:[e.jsxDEV("h2",{className:"font-display text-lg font-bold",children:"Automatische opname"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:733,columnNumber:11},this),e.jsxDEV("p",{className:"mt-1 max-w-xl text-sm text-zinc-400",children:"Normaal start dit automatisch elk uur. Gebruik deze knop om het handmatig te triggeren (bijv. als de cron gemist is)."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:734,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:732,columnNumber:9},this),e.jsxDEV("button",{type:"button",onClick:V,disabled:r,className:"inline-flex items-center gap-2 rounded-full bg-honey-500 px-5 py-2.5 text-xs font-bold uppercase tracking-[0.18em] text-zinc-950 transition hover:bg-honey-400 disabled:opacity-50",children:[r?e.jsxDEV(w,{size:14,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:745,columnNumber:25},this):e.jsxDEV(Re,{size:14},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:745,columnNumber:74},this),"Trigger nu"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:739,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:731,columnNumber:7},this),y&&e.jsxDEV("p",{className:"mt-3 rounded-xl border border-zinc-200/80 bg-zinc-50 dark:border-white/10 dark:bg-zinc-950/60 px-4 py-2.5 text-sm text-zinc-700 dark:text-zinc-300",children:y},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:750,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:730,columnNumber:5},this)}function ke(){const{adminUser:r}=te(),[p,y]=i.useState([]),[D,V]=i.useState([]),[R,N]=i.useState(""),[b,x]=i.useState(""),[_,z]=i.useState(""),[I,t]=i.useState(120),[o,m]=i.useState(!1),[h,j]=i.useState(null),[k,L]=i.useState([]),[$,M]=i.useState(null),[U,T]=i.useState(Date.now());i.useEffect(()=>{Promise.all([d.from("recording_servers").select("id, label, status, last_heartbeat").order("label"),d.from("programs").select("id, name").order("sort").order("name")]).then(([s,g])=>{y(s.data??[]),V(g.data??[])})},[]),i.useEffect(()=>{let s=!1;async function g(){const{data:f}=await d.from("episode_segments").select("*, episode:program_episodes!inner(title, program:programs(name))").eq("is_manual",!0).in("status",["pending_record","recording"]).order("recorded_at",{ascending:!1});!s&&f&&L(f)}g();const v=d.channel("admin-manual-segs").on("postgres_changes",{event:"*",schema:"public",table:"episode_segments"},g).subscribe();return()=>{s=!0,d.removeChannel(v)}},[]),i.useEffect(()=>{const s=setInterval(()=>T(Date.now()),1e3);return()=>clearInterval(s)},[]);const O=p.filter(s=>s.status!=="online"||!s.last_heartbeat?!1:Date.now()-new Date(s.last_heartbeat).getTime()<12e4);function S(s){const g=U-new Date(s).getTime(),v=Math.floor(g/1e3),f=Math.floor(v/3600),q=Math.floor(v%3600/60),B=v%60;return f>0?`${f}:${String(q).padStart(2,"0")}:${String(B).padStart(2,"0")}`:`${q}:${String(B).padStart(2,"0")}`}async function Y(){if(!R){j("Selecteer een server.");return}if(!b){j("Selecteer een programma.");return}if(!_.trim()){j("Vul een titel in.");return}m(!0),j(null);try{const s=new Date,{data:g,error:v}=await d.from("program_episodes").insert({program_id:b,title:_.trim(),aired_at:s.toISOString(),duration_ms:0,published:!0}).select("id").single();if(v||!g)throw new Error(v?.message??"Aflevering aanmaken mislukt");const{error:f}=await d.from("episode_segments").insert({episode_id:g.id,hour:s.getHours(),segment_index:0,status:"pending_record",is_manual:!0,max_duration_minutes:I,recorded_at:s.toISOString()});if(f)throw new Error(f.message);await F({eventType:"recording.manual_started",targetTable:"program_episodes",targetId:g.id,actorRole:r?.role??null,payload:{title:_.trim(),program_id:b,max_minutes:I}}),z(""),x("")}catch(s){j(s instanceof Error?s.message:"Onbekende fout")}m(!1)}async function H(s){M(s);try{const{data:{session:g}}=await d.auth.getSession(),v=await fetch(`${Z}/functions/v1/stop-recording`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${g?.access_token}`,apikey:ie},body:JSON.stringify({segment_id:s})}),f=await v.json();v.ok||j(`Stoppen mislukt: ${f.error??"onbekende fout"}`)}catch(g){j(`Stoppen mislukt: ${g instanceof Error?g.message:"onbekend"}`)}M(null)}return e.jsxDEV("section",{className:"rounded-3xl border border-zinc-200/80 bg-white dark:border-white/10 dark:bg-zinc-900/40 p-6",children:[e.jsxDEV("div",{children:[e.jsxDEV("h2",{className:"font-display text-lg font-bold flex items-center gap-2",children:[e.jsxDEV(je,{size:18,className:"text-honey-400"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:909,columnNumber:11},this),"Handmatige opname via server"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:908,columnNumber:9},this),e.jsxDEV("p",{className:"mt-1 text-sm text-zinc-400",children:"Start een opname op een verbonden recorder-server. De aflevering is direct beluisterbaar na voltooiing."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:912,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:907,columnNumber:7},this),O.length===0?e.jsxDEV("p",{className:"rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/40 px-4 py-3 text-sm text-zinc-600 dark:text-zinc-500",children:"Geen online recorder-servers beschikbaar. Controleer de server-status via de Server-pagina."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:918,columnNumber:9},this):e.jsxDEV("div",{className:"space-y-4",children:[e.jsxDEV("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[e.jsxDEV("label",{className:"block",children:[e.jsxDEV("span",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Server"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:925,columnNumber:15},this),e.jsxDEV("select",{value:R,onChange:s=>N(s.target.value),disabled:o,className:"mt-2 w-full rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/60 px-3 py-2.5 text-sm text-zinc-900 dark:text-zinc-100 outline-none focus:border-honey-500/60 disabled:opacity-60",children:[e.jsxDEV("option",{value:"",children:"Kies server..."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:932,columnNumber:17},this),O.map(s=>e.jsxDEV("option",{value:s.id,children:s.label},s.id,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:934,columnNumber:19},this))]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:926,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:924,columnNumber:13},this),e.jsxDEV("label",{className:"block",children:[e.jsxDEV("span",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Programma"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:940,columnNumber:15},this),e.jsxDEV("select",{value:b,onChange:s=>{if(x(s.target.value),!_.trim()){const g=D.find(v=>v.id===s.target.value);if(g){const v=new Date().toLocaleDateString("nl-NL",{weekday:"long",day:"numeric",month:"long"});z(`${g.name} - ${v}`)}}},disabled:o,className:"mt-2 w-full rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/60 px-3 py-2.5 text-sm text-zinc-900 dark:text-zinc-100 outline-none focus:border-honey-500/60 disabled:opacity-60",children:[e.jsxDEV("option",{value:"",children:"Kies programma..."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:956,columnNumber:17},this),D.map(s=>e.jsxDEV("option",{value:s.id,children:s.name},s.id,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:958,columnNumber:19},this))]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:941,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:939,columnNumber:13},this),e.jsxDEV("label",{className:"block",children:[e.jsxDEV("span",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Titel aflevering"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:964,columnNumber:15}
1,this),e.jsxDEV("input",{type:"text",value:_,onChange:s=>z(s.target.value),disabled:o,placeholder:"Naam van de uitzending...",className:"mt-2 w-full rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/60 px-3 py-2.5 text-sm text-zinc-900 dark:text-zinc-100 outline-none placeholder:text-zinc-500 focus:border-honey-500/60 disabled:opacity-60"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:965,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:963,columnNumber:13},this),e.jsxDEV("label",{className:"block",children:[e.jsxDEV("span",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Max. duur"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:976,columnNumber:15},this),e.jsxDEV("select",{value:I,onChange:s=>t(Number(s.target.value)),disabled:o,className:"mt-2 w-full rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/60 px-3 py-2.5 text-sm text-zinc-900 dark:text-zinc-100 outline-none focus:border-honey-500/60 disabled:opacity-60",children:[e.jsxDEV("option",{value:30,children:"30 minuten"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:983,columnNumber:17},this),e.jsxDEV("option",{value:60,children:"1 uur"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:984,columnNumber:17},this),e.jsxDEV("option",{value:90,children:"1,5 uur"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:985,columnNumber:17},this),e.jsxDEV("option",{value:120,children:"2 uur"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:986,columnNumber:17},this),e.jsxDEV("option",{value:180,children:"3 uur"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:987,columnNumber:17},this),e.jsxDEV("option",{value:240,children:"4 uur"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:988,columnNumber:17},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:977,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:975,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:923,columnNumber:11},this),e.jsxDEV("button",{type:"button",onClick:Y,disabled:o,className:"inline-flex items-center gap-2 rounded-full bg-rose-500 px-6 py-2.5 text-sm font-bold uppercase tracking-[0.18em] text-white shadow-[0_15px_45px_-15px_rgba(244,63,94,0.7)] transition hover:bg-rose-400 disabled:opacity-50",children:[o?e.jsxDEV(w,{size:15,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:999,columnNumber:25},this):e.jsxDEV(oe,{size:15},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:999,columnNumber:74},this),"Start opname"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:993,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:922,columnNumber:9},this),h&&e.jsxDEV("div",{className:"flex items-start gap-2 rounded-xl bg-red-100 dark:bg-red-500/10 px-4 py-3 text-sm text-red-800 dark:text-red-200",children:[e.jsxDEV(W,{size:15,className:"mt-0.5 shrink-0"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1007,columnNumber:11},this),h]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1006,columnNumber:9},this),k.length>0&&e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("h3",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Actieve handmatige opnames"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1014,columnNumber:11},this),k.map(s=>{const g=s.status==="recording",v=s.status==="pending_record",f=!!s.stop_requested_at,q=s.episode?.title??"",B=s.episode?.program?.name??"";
1return e.jsxDEV("div",{className:"flex items-center gap-4 rounded-xl border border-honey-500/20 bg-honey-500/5 px-4 py-3",children:[e.jsxDEV("div",{className:"flex-1 min-w-0",children:[e.jsxDEV("p",{className:"text-sm font-bold text-zinc-900 dark:text-zinc-100 truncate",children:q},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1025,columnNumber:19},this),e.jsxDEV("p",{className:"text-xs text-zinc-500",children:B},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1026,columnNumber:19},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1024,columnNumber:17},this),e.jsxDEV("div",{className:"flex items-center gap-3 shrink-0",children:[g&&!f&&e.jsxDEV("span",{className:"font-mono text-sm tabular-nums text-honey-300",children:S(s.recorded_at)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1030,columnNumber:21},this),v&&e.jsxDEV("span",{className:"flex items-center gap-1.5 text-xs text-zinc-400",children:[e.jsxDEV(w,{size:11,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1036,columnNumber:23},this),"Wacht op agent..."]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1035,columnNumber:21},this),f&&e.jsxDEV("span",{className:"flex items-center gap-1.5 text-xs text-zinc-400",children:[e.jsxDEV(w,{size:11,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1042,columnNumber:23},this),"Afronden & uploaden..."]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1041,columnNumber:21},this),!f&&e.jsxDEV("button",{type:"button",onClick:()=>H(s.id),disabled:$===s.id,className:"inline-flex items-center gap-1.5 rounded-full bg-zinc-100 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.18em] text-zinc-900 transition hover:bg-white disabled:opacity-50",children:[$===s.id?e.jsxDEV(w,{size:11,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1054,columnNumber:27},this):e.jsxDEV(re,{size:11,fill:"currentColor"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1055,columnNumber:27},this),"Stop"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1047,columnNumber:21},this),g&&!f&&e.jsxDEV("span",{className:"relative flex h-2.5 w-2.5",children:[e.jsxDEV("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-rose-500 opacity-75"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1061,columnNumber:23},this),e.jsxDEV("span",{className:"relative inline-flex h-2.5 w-2.5 rounded-full bg-rose-500"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1062,columnNumber:23},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1060,columnNumber:21},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1028,columnNumber:17},this)]},s.id,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1023,columnNumber:15},this)}),e.jsxDEV("p",{className:"text-xs text-zinc-500",children:["Na voltooiing verschijnt de aflevering direct op de ",e.jsxDEV("span",{className:"font-semibold text-zinc-400",children:"Gemist"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1070,columnNumber:65},this),"-pagina."]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1069,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1013,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:906,columnNumber:5},this)}function we(){const[r,p]=i.useState([]),[y,D]=i.useState(Date.now()),[V,R]=i.useState(null);i.useEffect(()=>{let t=!1;async function o(){const{data:j}=await d.from("episode_segments").select("*, episode:program_episodes!inner(title, program:programs(name))").in("status",["recording","completed","error"]).order("recorded_at",{ascending:!1}).limit(20);!t&&j&&p(j)}o();const m=d.channel("admin-episode-segments-monitor").on("postgres_changes",{event:"*",schema:"public",table:"episode_segments"},()=>o()).subscribe(),h=setInterval(o,15e3);return()=>{t=!0,d.removeChannel(m),clearInterval(h)}},[]),i.useEffect(()=>{const t=setInterval(()=>D(Date.now()),1e3);return()=>clearInterval(t)},[]);const N=r.filter(t=>t.status==="recording"),b=r.filter(t=>t.status!=="recording").slice(0,8);function x(t){const o=y-new Date(t).getTime(),m=Math.floor(o/1e3),h=Math.floor(m/3600),j=Math.floor(m%3600/60),k=m%60;return h>0?`${h}
1:${String(j).padStart(2,"0")}:${String(k).padStart(2,"0")}`:`${j}:${String(k).padStart(2,"0")}`}function _(t){const o=y-new Date(t).getTime();return Math.min(100,o/36e5*100)}function z(t){const o=(t+1)%24;return`${String(t).padStart(2,"0")}:00 - ${String(o).padStart(2,"0")}:00`}async function I(t){R(t),await d.from("episode_segments").update({status:"pending_record",error_message:null}).eq("id",t),R(null)}return e.jsxDEV("section",{className:"rounded-3xl border border-zinc-200/80 bg-white dark:border-white/10 dark:bg-zinc-900/40 p-6",children:[e.jsxDEV("h2",{className:"font-display text-lg font-bold",children:"Live opname-monitor"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1167,columnNumber:7},this),e.jsxDEV("p",{className:"mt-1 max-w-xl text-sm text-zinc-400",children:"Real-time overzicht van actieve en recente automatische opnames (per segment)."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1168,columnNumber:7},this),N.length===0&&b.length===0&&e.jsxDEV("div",{className:"mt-6 rounded-xl border border-zinc-200/50 bg-zinc-50 dark:border-white/5 dark:bg-zinc-950/40 p-8 text-center",children:[e.jsxDEV(de,{size:24,className:"mx-auto text-zinc-500"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1174,columnNumber:11},this),e.jsxDEV("p",{className:"mt-2 text-sm text-zinc-500",children:"Geen actieve opnames. De scheduler start automatisch elk uur."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1175,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1173,columnNumber:9},this),N.length>0&&e.jsxDEV("div",{className:"mt-4 space-y-3",children:N.map(t=>{const o=_(t.recorded_at),m=t.episode?.program?.name??"Onbekend",h=z(t.hour);return e.jsxDEV("div",{className:"rounded-xl border border-honey-500/30 bg-honey-500/5 p-4",children:[e.jsxDEV("div",{className:"flex items-center justify-between",children:[e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV("span",{className:"relative flex h-3 w-3",children:[e.jsxDEV("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-rose-500 opacity-75"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1189,columnNumber:23},this),e.jsxDEV("span",{className:"relative inline-flex h-3 w-3 rounded-full bg-rose-500"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1190,columnNumber:23},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1188,columnNumber:21},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-sm font-bold text-zinc-900 dark:text-zinc-100",children:[m,e.jsxDEV("span",{className:"ml-2 font-normal text-zinc-500",children:h},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1195,columnNumber:25},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1193,columnNumber:23},this),e.jsxDEV("p",{className:"text-xs text-zinc-500",children:t.episode?.title??""},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1199,columnNumber:23},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1192,columnNumber:21},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1187,columnNumber:19},this),e.jsxDEV("div",{className:"flex items-center gap-3 text-right",children:e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"font-mono text-sm font-bold tabular-nums text-honey-600 dark:text-honey-300",children:x(t.recorded_at)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1206,columnNumber:23},this),e.jsxDEV("p",{className:"text-[10px] text-zinc-500",children:"verstreken"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1207,columnNumber:23},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1205,columnNumber:21},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1204,columnNumber:19},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1186,columnNumber:17},this),e.jsxDEV("div",{className:"mt-3 space-y-1",children:[e.jsxDEV("div",{className:"flex justify-between text-[11px] text-zinc-500",children:[e.jsxDEV("span",{children:"Voortgang naar volledig segment"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1213,columnNumber:21},this),e.jsxDEV("span",{className:"tabular-nums",children:[Math.round(o),"%"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1214,columnNumber:21},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1212,columnNumber:19},this),e.jsxDEV("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-700/60",children:e.jsxDEV("div",{className:"h-full rounded-full bg-gradient-to-r from-honey-500 to-honey-400 transition-[width] duration-1000 ease-linear",style:{width:`${o}%`}},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1217,columnNumber:15},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1216,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1211,columnNumber:17},this)]},t.id,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1185,columnNumber:15},this)})},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1180,columnNumber:9},this),b.length>0&&e.jsxDEV("div",{className:"mt-5",children:[e.jsxDEV("h3",{className:"text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:"Recente segment-opnames"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1231,columnNumber:11},this),e.jsxDEV("div",{className:"mt-2 space-y-1.5",children:b.map(t=>{const o=t.episode?.program?.name??"Onbekend",m=z(t.hour),h=t.status==="error";return e.jsxDEV("div",{className:`flex items-center gap-3 rounded-lg border px-3 py-2 text-xs ${h?"border-rose-500/20 bg-rose-500/5":"border-emerald-500/20 bg-emerald-500/5"}`,children:[h?e.jsxDEV(W,{size:13,className:"shrink-0 text-rose-400"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1248,columnNumber:21},this):e.jsxDEV(le,{size:13,className:"shrink-0 text-emerald-400"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1250,columnNumber:21},this),e.jsxDEV("span",{className:"flex-1 text-zinc-700 dark:text-zinc-300",children:[e.jsxDEV("span",{className:"font-semibold",children:o},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1253,columnNumber:21},this)," ",e.jsxDEV("span",{className:"text-zinc-500",children:m},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1255,columnNumber:21},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1252,columnNumber:19},this),t.file_size>0&&e.jsxDEV("span",{className:"font-mono text-zinc-400",children:G(t.file_size)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1260,columnNumber:21},this),t.duration_ms>0&&e.jsxDEV("span",{className:"font-mono text-zinc-400",children:ee(t.duration_ms)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1263,columnNumber:21},this),h&&t.error_message&&e.jsxDEV("span",{className:"max-w-[160px] truncate text-rose-600 dar
1k:text-rose-300",title:t.error_message,children:t.error_message},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1266,columnNumber:21},this),h&&e.jsxDEV("button",{type:"button",onClick:()=>I(t.id),disabled:V===t.id,title:"Opnieuw proberen",className:"inline-flex items-center gap-1 rounded-full border border-honey-500/40 bg-honey-500/10 px-2.5 py-1 text-[11px] font-bold uppercase tracking-[0.18em] text-honey-700 dark:text-honey-200 transition hover:bg-honey-500/20 disabled:opacity-50",children:[V===t.id?e.jsxDEV(w,{size:11,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1279,columnNumber:27},this):e.jsxDEV(me,{size:11},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1280,columnNumber:27},this),"Retry"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1271,columnNumber:21},this)]},t.id,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1239,columnNumber:17},this)})},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1234,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1230,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1166,columnNumber:5},this)}function _e(){const[r,p]=i.useState(null),[y,D]=i.useState(null),[V,R]=i.useState([]),[N,b]=i.useState(!0),[x,_]=i.useState(null);async function z(){_(null);const{data:o,error:m}=await d.rpc("get_storage_stats");if(m){_(m.message),b(!1);return}const h=o;h&&(p(h.db_name),D(h.db_size_bytes),R(h.buckets??[])),b(!1)}i.useEffect(()=>{z()},[]);const I=V.reduce((o,m)=>o+m.total_size_bytes,0),t=V.reduce((o,m)=>o+m.file_count,0);return e.jsxDEV("section",{className:"rounded-3xl border border-zinc-200/80 bg-white dark:border-white/10 dark:bg-zinc-900/40 p-6",children:[e.jsxDEV("div",{className:"flex items-center justify-between",children:[e.jsxDEV("div",{children:[e.jsxDEV("h2",{className:"font-display text-lg font-bold flex items-center gap-2",children:[e.jsxDEV(se,{size:18,className:"text-honey-400"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1337,columnNumber:13},this),"Opslag server"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1336,columnNumber:11},this),e.jsxDEV("p",{className:"mt-1 text-sm text-zinc-400",children:"Database- en bestandopslag op deze server. Op productie draait dit op een andere server dan dev."},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1340,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1335,columnNumber:9},this),e.jsxDEV("button",{type:"button",onClick:z,disabled:N,className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-200 dark:border-white/10 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.18em] text-zinc-600 dark:text-zinc-300 transition hover:bg-zinc-100 dark:hover:bg-white/5 disabled:opacity-50",children:[N?e.jsxDEV(w,{size:12,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1350,columnNumber:22},this):e.jsxDEV(me,{size:12},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1350,columnNumber:71},this),"Vernieuw"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1344,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1334,columnNumber:7},this),x&&e.jsxDEV("div",{className:"mt-4 flex items-start gap-2 rounded-xl bg-red-100 dark:bg-red-500/10 px-4 py-3 text-sm text-red-800 dark:text-red-200",children:[e.jsxDEV(W,{size:16,className:"mt-0.5 shrink-0"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1357,columnNumber:11},this),x]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1356,columnNumber:9},this),!x&&!N&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"mt-4 grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[e.jsxDEV("div",{className:"rounded-2xl border border-zinc-200/80 dark:border-white/10 bg-zinc-50 dark:bg-zinc-950/40 p-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:[e.jsxDEV(se,{size:13},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1367,columnNumber:17},this),"Database"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1366,columnNumber:15},this),e.jsxDEV("p",{className:"mt-2 font-display text-xl font-bold text-zinc-900 dark:text-zinc-100",children:y!==null?G(y):"â"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1370,columnNumber:15},this),r&&e.jsxDEV("p",{className:"mt-1 text-xs text-zinc-500 font-mono",children:r},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1373,columnNumber:26},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1365,columnNumber:13},this),e.jsxDEV("div",{className:"rounded-2xl border border-zinc-200/80 dark:border-white/10 bg-zinc-50 dark:bg-zinc-950/40 p-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:[e.jsxDEV(Pe,{size:13},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1377,columnNumber:17},this),"Bestanden totaal"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1376,columnNumber:15},this),e.jsxDEV("p",{className:"mt-2 font-display text-xl font-bold text-zinc-900 dark:text-zinc-100",children:G(I)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1380,columnNumber:15},this),e.jsxDEV("p",{className:"mt-1 text-xs text-zinc-500",children:[t," bestanden"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1383,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1375,columnNumber:13},this),e.jsxDEV("div",{className:"rounded-2xl border border-zinc-200/80 dark:border-white/10 bg-zinc-50 dark:bg-zinc-950/40 p-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.22em] text-zinc-500",children:[e.jsxDEV(ae,{size:13},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1387,columnNumber:17},this),"Buckets"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1386,columnNumber:15},this),e.jsxDEV("p",{className:"mt-2 font-display text-xl font-bold text-zinc-900 dark:text-zinc-100",children:V.length},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1390,columnNumber:15},this),e.jsxDEV("p",{className:"mt-1 text-xs text-zinc-500",children:"opslagbuckets"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1391,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1385,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1364,columnNumber:11},this),V.length>0&&e.jsxDEV("div",{className:"mt-4 overflow-hidden rounded-2xl border border-zinc-200 dark:border-white/10",children:e.jsxDEV("table",{className:"w-full text-sm",children:[e.jsxDEV("thead",{className:"bg-zinc-100 dark:bg-zinc-900/60 text-[10px] uppercase tracking-[0.22em] text-zinc-500",children:e.jsxDEV("tr",{children:[e.jsxDEV("th",{className:"px-4 py-3 text-left font-bold",children:"Bucket"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1400,columnNumber:21},this),e.jsxDEV("th",{className:"px-4 py-3 text-left font-bold",children:"Type"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1401,columnNumber:21},this),e.jsxDEV("th",{className:"px-4 py-3 text-right font-bold",children:"Bestanden"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1402,columnNumber:21},this),e.jsxDEV("th",{className:"px-4 py-3 text-right font-bold",children:"Grootte"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1403,columnNumber:21},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1399,columnNumber:19},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1398,columnNumber:17},this),e.jsxDEV("tbody",{children:V.map(o=>e.jsxDEV("tr",{className:"border-t border-zinc-200/80 dark:border-white/5",children:[e.jsxDEV("td",{className:"px-4 py-3 font-medium text-zinc-800 dark:text-zinc-200",children:o.name},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1409,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3 text-xs",children:e.jsxDEV("span",{className:`rounded-full px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider ${o.public?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-300":"bg-zinc-200 dark:bg-white/10 text-zinc-600 dark:text-zinc-400"}`,children:o.public?"Publiek":"Prive"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1411,columnNumber:25},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1410,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3 text-right font-mono text-zinc-600 dark:text-zinc-400",children:o.file_count},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1415,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3 text-right font-mono font-bold text-zinc-800 dark:text-zinc-200",children:G(o.total_size_bytes)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1416,columnNumber:23},this)]},o.id,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1408,columnNumber:21},this))},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1406,columnNumber:17},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1397,columnNumber:15},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1396,c
1olumnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1363,columnNumber:9},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1333,columnNumber:5},this)}function Se(r,p){return`${new Date().toISOString().slice(0,10)}/${r}.${p}`}function X({label:r,value:p}){return e.jsxDEV("div",{className:"rounded-full border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950/60 px-3 py-1.5 text-xs font-mono",children:[e.jsxDEV("span",{className:"mr-2 text-[10px] font-bold uppercase tracking-[0.18em] text-zinc-500",children:r},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1437,columnNumber:7},this),e.jsxDEV("span",{className:"text-zinc-900 dark:text-zinc-100",children:p},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1440,columnNumber:7},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1436,columnNumber:5},this)}function $e({rec:r,busy:p,onDownload:y,onDelete:D,onStop:V,onLabel:R}){const[N,b]=i.useState(r.label??""),[x,_]=i.useState(""),z=r.status==="completed"?"border-emerald-500/30":r.status==="error"?"border-rose-500/30":r.status==="recording"?"border-honey-500/40":r.status==="finalizing"?"border-blue-500/40":"border-white/10",I=r.duration_ms??0,t=r.file_size??r.bytes_recorded,o=i.useMemo(()=>{if(!r.notes)return null;try{return JSON.parse(r.notes)}catch{return null}},[r.notes]),m=i.useMemo(()=>{if(!o?.scheduled_end_hour)return null;const k=Number(o.scheduled_end_hour);return`${String(k).padStart(2,"0")}:00`},[o]),[h,j]=i.useState(0);return i.useEffect(()=>{if(r.status!=="recording")return;const k=()=>{const $=Date.now()-new Date(r.started_at).getTime(),M=Math.floor($/1e3),U=Math.floor(M/3600),T=Math.floor(M%3600/60),O=M%60;if(_(U>0?`${U}:${String(T).padStart(2,"0")}:${String(O).padStart(2,"0")}`:`${T}:${String(O).padStart(2,"0")}`),o?.scheduled_end_hour&&o?.chunk_hour!=null){const S=(o.scheduled_end_hour-o.chunk_hour)*36e5;j(Math.min(100,$/S*100))}};k();const L=setInterval(k,1e3);return()=>clearInterval(L)},[r.status,r.started_at,o]),e.jsxDEV("article",{className:`flex flex-wrap items-center gap-4 roun
1ded-2xl border bg-white dark:bg-zinc-900/40 p-4 ${z}`,children:[e.jsxDEV("div",{className:"flex h-12 w-12 shrink-0 items-center justify-center rounded-xl bg-zinc-200 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-300",children:r.status==="completed"?e.jsxDEV(Ve,{size:20,className:"text-honey-300"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1510,columnNumber:11},this):r.status==="error"?e.jsxDEV(W,{size:20,className:"text-rose-300"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1512,columnNumber:11},this):r.status==="recording"?e.jsxDEV(w,{size:20,className:"animate-spin text-honey-300"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1514,columnNumber:11},this):r.status==="finalizing"?e.jsxDEV(w,{size:20,className:"animate-spin text-blue-300"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1516,columnNumber:11},this):e.jsxDEV(ae,{size:20},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1518,columnNumber:11},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1508,columnNumber:7},this),e.jsxDEV("div",{className:"min-w-0 flex-1",children:[e.jsxDEV("div",{className:"flex items-center gap-2 text-xs text-zinc-500",children:[e.jsxDEV("span",{children:ve(r.started_at)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1524,columnNumber:11},this),e.jsxDEV("span",{children:"·"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1525,columnNumber:11},this),e.jsxDEV("span",{children:r.status==="recording"?x:ee(I)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1526,columnNumber:11},this),e.jsxDEV("span",{children:"·"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1527,columnNumber:11},this),e.jsxDEV("span",{children:G(t)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1528,columnNumber:11},this),r.content_type&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("span",{children:"·"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1531,columnNumber:15},this),e.jsxDEV("span",{className:"font-mono text-zinc-400",children:r.content_type.split(";")[0]},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1532,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1530,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1523,columnNumber:9},this),e.jsxDEV("input",{type:"text",value:N,onChange:k=>b(k.target.value),onBlur:()=>{N!==(r.label??"")&&R(N)},placeholder:"Geef deze opname een naam...",className:"mt-1 w-full bg-transparent font-display text-base font-bold text-zinc-800 dark:text-zinc-100 outline-none placeholder:text-zinc-500"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1536,columnNumber:9},this),r.status==="recording"&&m&&e.jsxDEV("div",{className:"mt-2 space-y-1",children:[e.jsxDEV("div",{className:"flex items-center justify-between text-xs",children:[e.jsxDEV("span",{className:"flex items-center gap-1.5 text-honey-600 dark:text-honey-300/80",children:[e.jsxDEV(de,{size:11},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1550,columnNumber:17},this),"Stopt om ",m]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1549,columnNumber:15},this),e.jsxDEV("span",{className:"tabular-nums text-zinc-400",children:[Math.round(h),"%"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1553,columnNumber:15},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1548,columnNumber:13},this),e.jsxDEV("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-700/60",children:e.jsxDEV("div",{className:"h-full rounded-full bg-gradient-to-r from-honey-500 to-honey-400 transition-[width] duration-1000 ease-linear",style:{width:`${h}%`}},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1556,columnNumber:15},this)},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1555,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1547,columnNumber:11},this),r.error_message&&e.jsxDEV("p",{className:"mt-1 text-xs text-rose-600 dar
1k:text-rose-300",children:r.error_message},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1564,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1522,columnNumber:7},this),e.jsxDEV("div",{className:"flex shrink-0 items-center gap-2",children:[r.status==="completed"&&r.file_path&&e.jsxDEV("button",{type:"button",onClick:y,disabled:p,className:"inline-flex items-center gap-1.5 rounded-full bg-honey-500 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.18em] text-zinc-950 transition hover:bg-honey-400 disabled:opacity-50",children:[p?e.jsxDEV(w,{size:12,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1576,columnNumber:21},this):e.jsxDEV(ye,{size:12},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1576,columnNumber:70},this),"Download"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1570,columnNumber:11},this),r.status==="recording"&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{type:"button",onClick:V,disabled:p,className:"inline-flex items-center gap-1.5 rounded-full bg-zinc-100 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.18em] text-zinc-900 transition hover:bg-white disabled:opacity-50",children:[p?e.jsxDEV(w,{size:12,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1588,columnNumber:23},this):e.jsxDEV(re,{size:12,fill:"currentColor"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1588,columnNumber:72},this),"Stop"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1582,columnNumber:13},this),e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-honey-500/40 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.18em] text-honey-600 dark:text-honey-200",children:[e.jsxDEV("span",{className:"relative flex h-2 w-2",children:[e.jsxDEV("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-honey-400 opacity-75"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1593,columnNumber:17},this),e.jsxDEV("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-honey-500"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1594,columnNumber:17},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1592,columnNumber:15},this),x]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1591,columnNumber:13},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1581,columnNumber:11},this),r.status==="finalizing"&&e.jsxDEV("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-blue-500/40 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.18em] text-blue-600 dark:text-blue-200",children:[e.jsxDEV(w,{size:12,className:"animate-spin"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1602,columnNumber:13},this),"Samenvoegen..."]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1601,columnNumber:11},this),r.status!=="recording"&&r.status!=="finalizing"&&e.jsxDEV("button",{type:"button",onClick:D,disabled:p,className:"inline-flex items-center gap-1 rounded-full border border-rose-500/40 px-3 py-1.5 text-[11px] font-bold uppercase tracking-[0.18em] text-rose-600 dar
1k:text-rose-300 transition hover:bg-rose-500/10 disabled:opacity-50",children:[e.jsxDEV(ne,{size:12},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1613,columnNumber:13},this),"Verwijder"]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1607,columnNumber:11},this),r.status==="completed"&&e.jsxDEV(le,{size:14,className:"text-emerald-400"},void 0,!1,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1618,columnNumber:11},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1568,columnNumber:7},this)]},void 0,!0,{fileName:"/home/beeradio/beeradio-src/src/admin/pages/RecordPage.tsx",lineNumber:1507,columnNumber:5},this)}export{Le as RecordPage};
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.