Files
op-packages/luci-app-honk/root/etc/honk/dashboard/assets/logs-KkruktUh.js
T

2 lines
1.6 KiB
JavaScript

import{r as n}from"./vendor-react-Bf71BWbF.js";import{be as E,$ as S,ds as f,dt as v,dm as x}from"./index-zQjLFfuj.js";const g=()=>f(x,{},"replace",o=>`${o.event} ${o.id}`),C=1e3,F=()=>()=>{},L={records:[]};function _(o){const s=n.useMemo(()=>({changes:g(),runtime:g()}),[]),a=n.useSyncExternalStore(s.changes.subscribe,s.changes.getSnapshot),c=n.useSyncExternalStore(o?s.runtime.subscribe:F,o?s.runtime.getSnapshot:()=>L),p=v(r=>(r.event==="runtime.updated"?s.runtime:s.changes).append(r),!0),u=n.useMemo(()=>{if(!c.records.length)return a.records;if(!a.records.length)return c.records;const r=new Map([...a.records,...c.records].map(t=>[t,Date.parse(t.data.observed_at)]));return[...r.keys()].sort((t,e)=>r.get(e)-r.get(t))},[a.records,c.records]);return{...p,events:u}}function I({level:o,target:s,paused:a}){const c=E(),u=S().data?.resources.logs.available,r=n.useRef(()=>{}),t=n.useMemo(()=>{const e=f(C,{connected:!1,error:null},"ignore");return{getSnapshot:e.getSnapshot,clear:e.clear,hold:e.hold,subscribe(h){const m=e.subscribe(h);let l=new AbortController;const b=()=>{l=new AbortController;const{signal:d}=l;e.update({error:null}),u&&c.subscribeLogs({level:o,target:s||void 0,signal:d,onConnectionChange:i=>{d.aborted||e.update({connected:i})},onRecord:i=>{d.aborted||e.append(i)},onCursorExpired:()=>{d.aborted||e.markGap()}}).catch(i=>{d.aborted||e.update({error:i instanceof Error?i:new Error(String(i))})})};return b(),r.current=()=>{l.abort(),b()},()=>{l.abort(),r.current=()=>{},m()}}}},[c,u,o,s]);return n.useEffect(()=>t.hold(a),[t,a]),{...n.useSyncExternalStore(t.subscribe,t.getSnapshot),available:u,clear:t.clear,retry:()=>r.current()}}export{C as L,I as a,_ as u};