1import React, {useState, createContext, useEffect} from "react";
2import {jsonRequest} from "@/common/utils/RequestUtil";
3
4export const StatusContext = createContext({});
5
6export const StatusProvider = (props) => {
7
8 const [status, setStatus] = useState({paused: false, running: false});
9
10 const updateStatus = () => jsonRequest("/speedtests/status").then(status => setStatus(status));
11
12 const setRunning = (running) => setStatus(prev => ({...prev, running}));
13
14 useEffect(() => {
15 updateStatus();
16 const interval = setInterval(() => updateStatus(), 5000);
17 return () => clearInterval(interval);
18 }, []);
19
20 return (
21 <StatusContext.Provider value={[status, updateStatus, setRunning]}>
22 {props.children}
23 </StatusContext.Provider>
24 )
25}