PageSourceSearch

https://romulo-anunciacao-cortes.vercel.app/assets/ClipRemoteMark-DsmUUmYy.js

js romulo-anunciacao-cortes.vercel.app collected 2026-10-03 07:39:03 UTC 8,120 bytes, 1 lines download raw bytes

1import{r as i,j as a}from"./vendor-react-BMa86P0d.js";import{u as A,C as T,R,c as I}from"./rmClipCameras-pQ89-ZxN.js";import{u as q}from"./useJogosMutations-Dy8jslbs.js";import{m as L,f as N}from"./matchTimer-z1lT4XiF.js";import{u as D,B as $}from"./useBackHandler-yGkovvJK.js";import{d as B}from"./useJogos-402kQlFY.js";import{u as O}from"./useTransmissaoMutations-ClH5lu-x.js";import{T as P}from"./cageCapture-1RbfbasR.js";import{S as U}from"./matchEvents-D2ZCLQq1.js";import{t as V,s as g}from"./index-S_HV_W8E.js";import{d as K}from"./teamAbbreviation-D7TIZ9EC.js";import"./dates-Du8G5a40.js";import"./vendor-query-B82-2FDf.js";import"./transmissionOverlay-BXLn0BrO.js";import"./useClips-DPAfVrCq.js";import"./mutationErrors-FwFqWGo_.js";import"./storage-BguqO2Kb.js";import"./stickerMedia-DYX89DfT.js";import"./uploadAsset-CHXiA9_V.js";import"./vendor-supabase-C6dBPfDd.js";const F=1e3;function H({match:t,compact:f=!1}){const r=q(),[d,u]=i.useState(()=>Date.now());i.useEffect(()=>{if(!t.is_timer_running)return;const x=window.setInterval(()=>u(Date.now()),F);return()=>window.clearInterval(x)},[t.is_timer_running]);const o=L(t,d),n=r.patchMatch.isPending,h=()=>r.patchMatch.mutate({id:t.id,patch:{is_timer_running:!0,timer_started_at:new Date().toISOString(),status:"started"}}),c=()=>r.patchMatch.mutate({id:t.id,patch:{is_timer_running:!1,timer_started_at:null,timer_accumulated_seconds:Math.round(o)}}),p=()=>{window.confirm("Zerar o cronômetro?")&&r.patchMatch.mutate({id:t.id,patch:{is_timer_running:!1,timer_started_at:null,timer_accumulated_seconds:0}})};return f?a.jsxs("div",{className:"ra-cage-timer",children:[a.jsx("span",{className:`ra-timer-display ${t.is_timer_running?"running":""}`,children:N(o)}),t.is_timer_running?a.jsx("button",{className:"ra-mini",onClick:c,disabled:n,title:"Pausar cronômetro",children:a.jsx("i",{className:"fas fa-pause"})}):a.jsx("button",{className:"ra-mini",onClick:h,disabled:n,title:"Iniciar cronômetro",children:a.jsx("i",{className:"fas fa-play"})}),a.jsx("button",{className:"ra-mini",onClick:p,disabled:n,title:"Zerar cronômetro",children:a.jsx("i",{className:"fas fa-rotate-left"})})]}):a.jsxs("div",{className:"ra-card",children:[a.jsxs("h3",{children:[a.jsx("i",{className:"fas fa-stopwatch"})," Cronômetro — ",t.home_team?.name," × ",t.away_team?.name]}),a.jsxs("div",{className:"ra-timer-row",children:[a.jsx("span",{className:`ra-timer-display ${t.is_timer_running?"running":""}`,children:N(o)}),t.is_timer_running?a.jsxs("button",{className:"ra-btn ra-btn-ghost",onClick:c,disabled:n,children:[a.jsx("i",{className:"fas fa-pause"})," Pausar"]}):a.jsxs("button",{className:"ra-btn ra-btn-primary",onClick:h,disabled:n,children:[a.jsx("i",{className:"fas fa-play"})," Iniciar"]}),a.jsx("button",{className:"ra-mini",title:"Zerar cronômetro",onClick:p,disabled:n,children:a.jsx("i",{className:"fas fa-rotate-left"})})]}),a.jsx("p",{className:"ra-item-sub",style:{marginTop:8},children:"O overlay no Streamlabs segue este cronômetro em tempo real."})]})}const Z=1e4;function pa(){const{data:t=[],error:f}=B(),[r,d]=i.useState(""),[u,o]=i.useState("simple"),[n,h]=i.useState([]),[c,p]=i.useState(null),[x,v]=i.useState(()=>Date.now()),l=i.useMemo(()=>t.find(e=>e.id===r)??null,[t,r]);D(()=>d(""),$.DETAIL,!!r);const M=i.useCallback(e=>{h(s=>[`${new Date().toLocaleTimeString("pt-BR")} — ${e}`,...s].slice(0,12))},[]),_=V(),{marking:j,markManual:w,markTeamEvent:C}=A(r,l,M,R,_),y=O(),S=e=>{d(e),e&&y.setLiveMatch.mutate({quadra:_,matchId:e})};i.useEffect(()=>{if(!r)return;let e=!0;const s=async()=>{const{data:b}=await g.from("clip_cameras").select("camera_index, recording, last_heartbeat_at, thermal_status").eq("match_id",r).eq("active",!0).order("camera_index");e&&b&&p(b)};s();const m=g.channel(`remote-cams-${r}`).on("postgres_changes",{event:"*",schema:"public",table:"clip_cameras",filter:`match_id=eq.${r}`},()=>{s()}).subscribe(),k=window.setInterval(()=>v(Date.now()),Z);return()=>{e=!1,p(null),window.clearInterval(k),g.removeChannel(m)}},[r]);const E=e=>e.last_heartbeat_at==null?"unknown":x-new Date(e.last_heartbeat_at).getTime()>I?"silent":e.recording===!1?"stopped":"ok";return a.jsx("div",{className:"ra-capture",children:l?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"ra-card",children:[a.jsxs("button",{className:"ra-btn ra-btn-ghost",style:{marginBottom:10},onClick:()=>d(""),children:[a.jsx("i",{className:"fas fa-arrow-left"})," Trocar de jogo"]}),a.jsxs("h3",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[a.jsx("i",{className:"fas fa-satellite-dish"})," ",l.home_team?.name," × ",l.away_team?.name,a.jsx(H,{match:l,compact:!0})]}),c!=null&&(c.length>0?a.jsxs(a.Fragment,{children:[a.jsxs("p",{className:"ra-item-sub",style:{color:"#86efac"},children:[a.jsx("i",{className:"fas fa-circle",style:{fontSize:"0.6em",verticalAlign:"middle"}})," ",c.length," câmera(s) ao vivo — o lance será cortado."]}),c.map(e=>{const s=E(e);return s==="stopped"||s==="silent"?a.jsxs("div",{className:"ra-cage-cam-down",role:"alert",children:[a.jsx("i",{className:"fas fa-video-slash"}),"Câmera ",e.camera_index," ",s==="stopped"?"PAROU DE GRAVAR":"sem sinal (app caiu ou ficou sem rede?)"," — confira o celular da quadra!"]},e.camera_index):s==="ok"&&(e.thermal_status??-1)>=P?a.jsxs("p",{className:"ra-item-sub",style:{color:"#fdba74"},children:[a.jsx("i",{className:"fas fa-temperature-three-quarters"})," Câmera ",e.camera_index," aquecendo — risco de queda; sombra/ventilação no aparelho ajudam."]}
1,e.camera_index):null})]}):a.jsxs("p",{className:"ra-item-sub",style:{color:"#fca5a5"},children:[a.jsx("i",{className:"fas fa-triangle-exclamation"})," Nenhuma câmera ao vivo. Ligue a câmera no outro celular, senão o lance não é cortado."]})),a.jsxs("div",{className:"ra-mode-row",children:[a.jsxs("button",{type:"button",className:`ra-mode ${u==="simple"?"active":""}`,onClick:()=>o("simple"),children:[a.jsxs("b",{children:[a.jsx("i",{className:"fas fa-bolt"})," Simplificado"]}),a.jsx("span",{children:"Um botão — marca o lance sem atribuir time."})]}),a.jsxs("button",{type:"button",className:`ra-mode ${u==="sumula"?"active":""}`,onClick:()=>o("sumula"),children:[a.jsxs("b",{children:[a.jsx("i",{className:"fas fa-table-list"})," Súmula simplificada"]}),a.jsx("span",{children:"Botões dos times — o lance já sai atribuído (gol soma placar)."})]})]})]}),u==="sumula"?a.jsx("div",{className:"ra-card",children:a.jsx("div",{className:"ra-cage-teams",children:["home","away"].map(e=>{const s=e==="home"?l.home_team:l.away_team;return a.jsxs("div",{className:"ra-cage-team-col",children:[a.jsxs("span",{className:"ra-cage-team-head",children:[a.jsx("span",{className:"ra-cage-team-logo",children:s?.logo_url?a.jsx("img",{src:s.logo_url,alt:""}):K(s)}),a.jsx("span",{className:"ra-cage-team-name",children:s?.name??(e==="home"?"Mandante":"Visitante")})]}),a.jsx("div",{className:"ra-cage-events",children:U.map(m=>a.jsxs("button",{className:"ra-cage-event",disabled:j,onClick:()=>{C(e,m.type)},children:[a.jsx("span",{className:"ra-cage-event-icon",children:a.jsx("i",{className:`fas ${m.icon}`})}),a.jsx("span",{className:"ra-cage-event-label",children:m.label})]},m.type))})]},e)})})}):a.jsx("div",{className:"ra-card",style:{textAlign:"center"},children:a.jsxs("button",{className:"ra-btn ra-btn-primary",style:{width:"100%",justifyContent:"center",padding:22,fontSize:"1.2rem"},disabled:j,onClick:()=>{w()},children:[a.jsx("i",{className:"fas fa-star"})," ",j?"Marcando…":"Marcar lance"]})}),n.length>0&&a.jsxs("div",{className:"ra-card",children:[a.jsxs("h3",{children:[a.jsx("i",{className:"fas fa-terminal"})," Atividade"]}),n.map((e,s)=>a.jsx("div",{className:"ra-item-sub",children:e},s))]})]}):a.jsxs(a.Fragment,{children:[a.jsx("h1",{className:"ra-page-title",children:"Marcação remota"}),a.jsx("p",{className:"ra-page-sub",children:"Marque os lances daqui — quem grava é o outro celular (a câmera). O disparo cai automaticamente em todas as câmeras ligadas no jogo."}),a.jsx(T,{matches:t,onPick:S,loadError:f?.message??null})]})})}export{pa 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.