import React, {useEffect, useState} from "react" import PageLayout from "../../components/PageLayout" import LastFiveMesure from "../../components/rainfall/LastFiveMesure" import AddRainfall from "../../components/rainfall/AddRainfall" import useAxiosTools from "../../hooks/AxiosTools" import {rainfallGraphData} from "../../types" import Field from "../../components/Field" import useDimension from "../../hooks/DimensionHook" import RainFallEcharts from "../../components/rainfall/RainFallEcharts" const RainfallGraph = () => { const [loadedAt, reload] = useState(new Date) const [graphData, setGraphData] = useState([]) const [graphDetails, setGraphDetails] = useState({ start_date: (new Date((new Date()).setMonth((new Date).getMonth() - 1))).toSQLDate(), end_date: (new Date()).toSQLDate(), period: 'day', }) const {loading, setLoading, errorCatch, errorLabel, axiosGet} = useAxiosTools() const {targetRef, dimensions} = useDimension() useEffect(() => { setLoading(true) fetchGraphData() }, [loadedAt, graphDetails]) const fetchGraphData = async () => { try { const params = `start=${graphDetails.start_date}&end=${graphDetails.end_date}&period=${graphDetails.period}` const res = await axiosGet(`/api/rainfalls/graph?${params}`) setGraphData(res.data) } catch (error) { errorCatch(error) } finally { setLoading(false) } } return {errorLabel()}
setGraphDetails({ ...graphDetails, start_date: (new Date(e.target.value)).toSQLDate() })}/> setGraphDetails({ ...graphDetails, end_date: (new Date(e.target.value)).toSQLDate() })}/>
} export default RainfallGraph