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 Rainfall = () => { 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(() => { fetchGraphData() }, [loadedAt, graphDetails]) const fetchGraphData = async () => { try { setLoading(true) 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 Rainfall