import { useState, useEffect } from "react"; import { API_URL } from "../config"; export default function RandomMsg() { const [randomMsg, setRandomMsg] = useState(""); const [responseTime, setResponseTime] = useState(null); const [showResponseTime, setShowResponseTime] = useState(false); const getRandomMsg = async () => { try { const start = performance.now(); const response = await fetch(`${API_URL}/randmsg`, { method: "POST", headers: { "Content-Type": "application/json; charset=utf-8" }, }); const end = performance.now(); setResponseTime(Math.round(end - start)); if (!response.ok) throw new Error(`HTTP ${response.status}`); const data = await response.json(); if (data?.msg) setRandomMsg(data.msg.replace(//gi, "\n")); } catch (err) { console.error("Failed to fetch random message:", err); setResponseTime(null); } }; useEffect(() => void getRandomMsg(), []); return (
{randomMsg && (
{ if (responseTime !== null) setShowResponseTime((v) => !v); }} tabIndex={0} onBlur={() => setShowResponseTime(false)} > {randomMsg} {showResponseTime && responseTime !== null && (
API response: {responseTime} ms
)}
)}
); }