import { useCallback, useEffect, useState } from "react"; import { api, PomodoroStatus } from "../api/client"; export function usePomodoro(pollMs = 1000) { const [status, setStatus] = useState(null); const [error, setError] = useState(null); const refresh = useCallback(async () => { try { const data = await api.pomodoroStatus(); setStatus(data); setError(null); } catch (err) { setError(err instanceof Error ? err.message : "Ошибка загрузки таймера"); } }, []); useEffect(() => { refresh().catch(console.error); const timer = setInterval(() => { refresh().catch(console.error); }, pollMs); return () => clearInterval(timer); }, [refresh, pollMs]); return { status, error, refresh }; }