import {Stat, User} from "@/interfaces/user";
import axios from "axios";
import {useEffect, useState} from "react";

export default function useStats(id?: string, shouldNotQuery?: boolean) {
	const [stats, setStats] = useState<Stat[]>([]);
	const [isLoading, setIsLoading] = useState(false);
	const [isError, setIsError] = useState(false);

	const getData = () => {
		if (shouldNotQuery) return;

		setIsLoading(true);
		axios
			.get<Stat[]>(!id ? "/api/stats" : `/api/stats/user/${id}`)
			.then((response) => setStats(response.data.filter((x) => (id ? x.user === id : true))))
			.finally(() => setIsLoading(false));
	};

	useEffect(getData, [id, shouldNotQuery]);

	return {stats, reload: getData, isLoading, isError};
}
