import React, { useState, useEffect } from "react"; import axios from "axios"; import Config from "../../../lib/config"; import ItemStatComponent from "./ItemStatComponent"; import AccountCircleFillIcon from "remixicon-react/AccountCircleFillIcon"; function MostActiveUsers(props) { const [data, setData] = useState(); const [days, setDays] = useState(30); const [config, setConfig] = useState(null); const [loaded, setLoaded]= useState(true); useEffect(() => { const fetchConfig = async () => { try { const newConfig = await Config(); setConfig(newConfig); } catch (error) { if (error.code === "ERR_NETWORK") { console.log(error); } } }; const fetchLibraries = () => { if (config) { const url = `/stats/getMostActiveUsers`; axios .post(url, {days:props.days}, { headers: { Authorization: `Bearer ${config.token}`, "Content-Type": "application/json", }, }) .then((data) => { setData(data.data); }) .catch((error) => { console.log(error); }); } }; if (!config) { fetchConfig(); } if (!data) { fetchLibraries(); } if (days !== props.days) { setDays(props.days); fetchLibraries(); } const intervalId = setInterval(fetchLibraries, 60000 * 5); return () => clearInterval(intervalId); }, [data, config, days,props.days]); if (!data || data.length === 0) { return <>; } const UserImage = () => { return ( setLoaded(false)} /> ); }; return ( : } data={data} heading={"MOST ACTIVE USERS"} units={"Plays"}/> ); } export default MostActiveUsers;