PageSourceSearch

https://85lr.com/assets/Status-CF22SQho.js

js 85lr.com collected 2026-10-02 00:46:19 UTC 4,989 bytes, 1 lines download raw bytes

1import{q as E,A as T,m as N,t as B}from"./index-Cg07ssxE.js";import{u as I}from"./usePageSeo-D86_ZPLA.js";import{C as V}from"./circle-check-3o-yISfR.js";import{L as j}from"./loader-circle-vHOgHNVp.js";import{y as D,C as R,G as $,N as q,_ as w,a7 as t,$ as f,u as s,aa as g,a8 as a,U as G,a5 as k,T as b,Y as P,r as l,f as d,S as i}from"./vendor-vue-i18n-tQhtYk3n.js";const U=E("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),z={class:"min-h-screen bg-background px-4 pb-16 pt-28 text-foreground sm:pt-32"},H={class:"mx-auto max-w-4xl"},Y={class:"mb-10"},F={class:"mb-4 inline-flex items-center gap-2 rounded-full border bg-card px-3 py-1.5 text-xs font-semibold text-primary"},J={class:"flex flex-col justify-between gap-5 sm:flex-row sm:items-end"},K={class:"text-3xl font-black tracking-tight sm:text-5xl"},O={class:"mt-4 max-w-2xl text-base leading-7 text-muted-foreground"},Q={class:"rounded-2xl border bg-card p-6 shadow-sm sm:p-8","aria-live":"polite"},W={class:"flex flex-col gap-5 border-b pb-6 sm:flex-row sm:items-center sm:justify-between"},X={class:"flex items-center gap-4"},Z={class:"text-xl font-bold"},tt={class:"mt-1 text-sm text-muted-foreground"},et={class:"text-left sm:text-right"},st={class:"text-3xl font-black tabular-nums"},at={class:"text-xs text-muted-foreground"},ot={class:"grid gap-4 pt-6 sm:grid-cols-3"},nt={class:"rounded-xl bg-muted/50 p-4"},lt={class:"text-xs font-semibold uppercase tracking-wide text-muted-foreground"},rt={class:"mt-2 text-sm font-medium"},ct={class:"rounded-xl bg-muted/50 p-4"},dt={class:"text-xs font-semibold uppercase tracking-wide text-muted-foreground"},it={class:"mt-2 text-sm font-medium"},ut={class:"rounded-xl bg-muted/50 p-4"},mt={class:"text-xs font-semibold uppercase tracking-wide text-muted-foreground"},ht={class:"mt-2 text-sm font-medium"},pt={key:0,class:"mt-6 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3 text-sm text-destructive"},kt=D({__name:"Status",setup(xt){const{t:e}=R(),o=l("checking"),r=l(!1),u=l(null),m=l(null),p=l(null),h=l("");let x;const y=d(()=>o.value==="up"?"bg-emerald-500/15 text-emerald-600":o.value==="down"?"bg-destructive/10 text-destructive":"bg-primary/10 text-primary"),C=d(()=>o.value==="up"?e("status.operational"):o.value==="down"?e("status.unavailable"):e("status.checking")),L=d(()=>u.value===null?"—":`${u.value} ms`),A=d(()=>m.value?m.value.toLocaleTimeString():"—"),M=d(()=>p.value?String(p.value):"—"),v=async()=>{if(r.value)return;r.value=!0,o.value="checking",h.value="";const _=performance.now(),c=new AbortController,S=window.setTimeout(()=>c.abort(),8e3);try{const n=await fetch("/health",{method:"GET",cache:"no-store",signal:c.signal});if(p.value=n.status,!n.ok)throw new Error(e("status.httpError",{status:n.status}));if((await n.json().catch(()=>null))?.status!=="ok")throw new Error(e("status.invalidResponse"));u.value=Math.round(performance.now()-_),m.value=new Date,o.value="up"}catch(n){u.value=Math.round(performance.now()-_),m.value=new Date,o.value="down",h.value=n?.name==="AbortError"?e("status.timeout"):n?.message||e("status.networkError")}finally{window.clearTimeout(S),r.value=!1}};return I({title:()=>e("status.title"),description:()=>e("status.subtitle"),canonicalPath:()=>"/status"}),$(()=>{v(),x=window.setInterval(()=>{v()},3e4)}),q(()=>{x&&window.clearInterval(x)}),(_,c)=>(i(),w("main",z,[t("div",H,[t("section",Y,[t("div",F,[f(s(T),{class:"h-4 w-4","aria-hidden":"true"}),g(" "+a(s(e)("status.badge")),1)]),t("div",J,[t("div",null,[t("h1",K,a(s(e)("status.title")),1),t("p",O,a(s(e)("status.subtitle")),1)]),f(s(N),{variant:"outline",class:"min-h-11 shrink-0 rounded-xl",disabled:r.value,onClick:v},{default:G(()=>[f(s(U),{class:k(["mr-2 h-4 w-4",r.value?"animate-spin":""]),"aria-hidden":"true"},null,8,["class"]),g(" "+a(s(e)("status.refresh")),1)]),_:1},8,["disabled"])])]),t("section",Q,[t("div",W,[t("div",X,[t("span",{class:k(["grid h-12 w-12 place-items-center rounded-full",y.value])},[o.value==="up"?(i(),b(s(V),{key:0,class:"h-6 w-6","aria-hidden":"true"})):o.value==="checking"?(i(),b(s(j),{key:1,class:"h-6 w-6 animate-spin","aria-hidden":"true"})):(i(),b(s(B),{key:2,class:"h-6 w-6","aria-hidden":"true"}))],2),t("div",null,[t("h2",Z,a(C.value),1),t("p",tt,[g(a(s(e)("status.endpoint"))+" ",1),c[0]||(c[0]=t("code",{class:"rounded bg-muted px-1.5 py-0.5"},"/health",-1))])])]),t("div",et,[t("p",st,a(L.value),1),t("p",at,a(s(e)("status.latency")),1)])]),t("dl",ot,[t("div",nt,[t("dt",lt,a(s(e)("status.checkedAt")),1),t("dd",rt,a(A.value),1)]),t("div",ct,[t("dt",dt,a(s(e)("status.response")),1),t("dd",it,a(M.value),1)]),t("div",ut,[t("dt",mt,a(s(e)("status.monitoring")),1),t("dd",ht,a(s(e)("status.autoRefresh")),1)])]),h.value?(i(),w("p",pt,a(h.value),1)):P("",!0)])])]))}});
1export{kt 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.