import{E as e,F as t,K as n,V as r,b as i,f as a,i as o,j as s,k as c,l,m as u,n as d,o as f,r as p,u as m,v as h,x as g,z as _}from"./ui-W1Pm8dqI.js";import{t as v}from"./arrow-right-DNPSxlbJ.js";import{t as y}from"./cloud-CTCP3hC3.js";import{t as b}from"./server-C0Pmpptj.js";import{t as x}from"./shield-check-D8IU7TWB.js";import{i as S,n as C,r as w,t as T}from"./index-CFU6bGFM.js";var E=e(`

进入房间`),D=e(`
`),O=e(`
当前角色发布:发弹幕:`),k=e(`

后端状态`),A=e(`
`),j=e(`

分发协议

`),M=e(`
凭据由服务端代理注入,浏览器不持有 SFU 密钥。`),N=e(`

在线房间

当前已恢复的分发拓扑

`),P=e(`
live-sfu / fan-out console

一路推流,多端扇出

Cloudflare Realtime 与 SRS 双 SFU 分发,浏览器经服务端反代直连,凭证不出服务端。`),F=e(`

正在读取后端配置…`),I=e(`

`),L=e(`

路`),R=e(`
`);function z(e){return e===`BACKEND_KIND_CLOUDFLARE`?y:b}function B(e){return e.targets?.length??0}var V=()=>{let e=S(),[y,b]=r([]),[V,H]=r([]),[U,W]=r(`demo`);n(async()=>{try{let e=await u.getConfig();b(e.backends||[])}catch{}if(a.isAuthed())try{let e=await u.listRooms();H(e.rooms||[])}catch{}});let G=t=>e({to:t,search:{room:U()}});return(()=>{var n=P(),r=n.firstChild,u=r.firstChild;return u.firstChild,i(u,t(o,{class:`space-y-4 p-5`,get children(){return[(()=>{var e=E(),n=e.firstChild;return i(e,t(w,{class:`size-4 text-primary`}),n),e})(),(()=>{var e=D(),n=e.firstChild;return i(e,t(m,{get value(){return U()},onInput:W,placeholder:`房间名,如 demo`,class:`sm:max-w-xs`}),n),i(n,t(p,{onClick:()=>G(`/room`),get children(){return[`进入房间`,t(v,{class:`size-4`})]}}),null),i(n,t(p,{variant:`outline`,onClick:()=>G(`/publish`),get children(){return[t(T,{class:`size-4`}),`开始直播`]}}),null),e})(),t(s,{get when(){return a.isAuthed()},get children(){var e=O(),n=e.firstChild;n.firstChild;var r=n.nextSibling,o=r.firstChild.nextSibling,s=r.nextSibling.firstChild.nextSibling;return i(n,t(d,{class:`border-acid-cyan/30 bg-acid-cyan/10 text-acid-cyan`,get children(){return a.role()}}),null),i(o,()=>a.can(`room:publish`)?`可`:`不可`),i(s,()=>a.can(`room:chat`)?`可`:`不可`),_(e=>{var t=a.can(`room:publish`)?`text-success`:`text-muted-foreground`,n=a.can(`room:chat`)?`text-success`:`text-muted-foreground`;return t!==e.e&&h(o,e.e=t),n!==e.t&&h(s,e.t=n),e},{e:void 0,t:void 0}),e}})]}}),null),i(r,t(o,{class:`w-full shrink-0 space-y-4 self-start p-5 lg:w-80 xl:w-[22rem]`,get children(){return[(()=>{var e=k(),n=e.firstChild,r=n.firstChild;return i(n,t(C,{class:`size-4 text-primary`}),r),i(e,t(d,{variant:`secondary`,get children(){return[g(()=>y().length),` 路`]}}),null),e})(),(()=>{var e=A();return i(e,t(s,{get when(){return y().length>0},get fallback(){return F()},get children(){return t(c,{get each(){return y()},children:e=>{let n=z(e.kind);return(()=>{var r=I(),a=r.firstChild.firstChild,o=a.nextSibling.firstChild,s=o.nextSibling;return i(a,t(n,{class:`size-4`})),i(o,()=>e.name),i(s,()=>e.primary?`主 SFU`:`对照后端`),i(r,t(d,{get variant(){return e.configured?`success`:`warning`},get children(){return e.configured?`已配置`:`未配置`}}),null),r})()}})}})),e})(),t(l,{}),(()=>{var e=j(),n=e.firstChild.nextSibling;return i(n,t(c,{each:[`WHIP`,`WHEP`,`HLS`,`FLV`],children:e=>t(d,{variant:`outline`,class:`font-mono`,children:e})})),e})(),(()=>{var e=M(),n=e.firstChild;return i(e,t(x,{class:`mt-px size-4 shrink-0 text-success`}),n),e})()]}}),null),i(n,t(s,{get when(){return V().length>0},get children(){var n=N(),r=n.firstChild;r.firstChild;var a=r.nextSibling;return i(r,t(p,{variant:`ghost`,size:`sm`,onClick:()=>e({to:`/rooms`}),get children(){return[`房间列表`,t(v,{class:`size-4`})]}}),null),i(a,t(c,{get each(){return V()},children:n=>t(o,{class:`space-y-3 p-4`,get children(){return[(()=>{var e=L(),r=e.firstChild,a=r.firstChild,o=r.nextSibling,s=o.firstChild;return i(r,t(f,{get active(){return B(n)>0}}),a),i(a,()=>n.name),i(o,()=>B(n),s),e})(),(()=>{var r=R();return i(r,t(p,{size:`sm`,class:`flex-1`,onClick:()=>e({to:`/room`,search:{room:n.name}}),children:`进入`}),null),i(r,t(p,{variant:`outline`,size:`sm`,class:`flex-1`,onClick:()=>e({to:`/publish`,search:{room:n.name}}),children:`直播`}),null),r})()]}})})),n}}),null),n})()};export{V as Home};