File tree Expand file tree Collapse file tree 2 files changed +29
-13
lines changed
Expand file tree Collapse file tree 2 files changed +29
-13
lines changed Original file line number Diff line number Diff line change 11"use server" ;
22
3- export async function getUpstreamStatus ( ) : Promise < boolean > {
3+ export async function getUpstreamLatency ( ) : Promise < number > {
44 try {
5- const response = await fetch ( "https://api.dbplay.app" ) ;
6- return response . ok ;
5+ const start = Date . now ( ) ;
6+
7+ const response = await fetch ( "https://api.dbplay.app" , { method : "HEAD" } ) ;
8+ if ( ! response . ok ) {
9+ return - 1 ;
10+ }
11+
12+ return Date . now ( ) - start ;
713 } catch ( error ) {
814 console . error ( "Error getting upstream status:" , error ) ;
9- return false ;
15+ return - 1 ;
1016 }
1117}
Original file line number Diff line number Diff line change 11import { Circle } from "lucide-react" ;
2- import { getUpstreamStatus } from "./status.action" ;
2+ import { getUpstreamLatency } from "./status.action" ;
3+ import {
4+ Tooltip ,
5+ TooltipContent ,
6+ TooltipTrigger ,
7+ } from "@/components/ui/tooltip" ;
38
49export async function UpstreamStatus ( ) {
5- const status = await getUpstreamStatus ( ) ;
10+ const latency = await getUpstreamLatency ( ) ;
611
7- if ( ! status ) {
12+ if ( latency === - 1 || latency > 1000 ) {
813 return (
914 < div className = "flex items-center gap-2" >
1015 < Circle className = "size-2.5 fill-red-500 text-red-500" />
@@ -16,12 +21,17 @@ export async function UpstreamStatus() {
1621 }
1722
1823 return (
19- < div className = "flex items-center gap-2" >
20- < Circle className = "size-2.5 fill-green-500 text-green-500" />
21- < div className = "text-sm" >
22- < span > 服務正常 🙌</ span >
23- </ div >
24- </ div >
24+ < Tooltip >
25+ < TooltipTrigger >
26+ < div className = "flex items-center gap-2" >
27+ < Circle className = "size-2.5 fill-green-500 text-green-500" />
28+ < div className = "text-sm" >
29+ < span > 服務正常 🙌</ span >
30+ </ div >
31+ </ div >
32+ </ TooltipTrigger >
33+ < TooltipContent > 延遲:{ latency } ms</ TooltipContent >
34+ </ Tooltip >
2535 ) ;
2636}
2737
You can’t perform that action at this time.
0 commit comments