"use client"; import React, {useEffect, useState} from "react"; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faSpinner } from "@fortawesome/free-solid-svg-icons"; import constants from '../config.js'; import FetchService from "./help/fetch-service"; import Donut from "./components/donut-chart/donut.jsx"; import YearInput from "./components/donut-chart/year-input.jsx"; import DataForm from "./components/bar-chart/form"; import BarChart from "./components/bar-chart/chart"; import Timeseries from "./components/timeseries/timeseries.jsx"; export default function Page() { const [donutValues, setDonutValues] = useState([]); const [chartData, setChartData] = useState([]); const [timeseries, setTimeseries] = useState([]); const [isLoadingBar, setIsLoadingBar] = useState(false); const [isLoadingDonut, setIsLoadingDonut] = useState(false); const [isLoadingTimeseries, setIsLoadingTimesseries] = useState(false); const handleFormSubmit = async (formData) => { setIsLoadingBar(true); const response = await FetchService.fetchBarChartData(formData); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } const data = await response.json(); setChartData(data); setIsLoadingBar(false); }; const handleYearSubmit = async (year) => { setIsLoadingDonut(true); const response = await FetchService.getDonutContent(year); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } const data = await response.json(); setDonutValues(data); setIsLoadingDonut(false); } useEffect(() => { (async () => { // bar chart const formData = { startDate: `${constants.initialBarChartFormData.startDate}`, endDate: `${constants.initialBarChartFormData.endDate}`, granularity: `${constants.initialBarChartFormData.granularity}` }; await handleFormSubmit(formData); // time series try { setIsLoadingTimesseries(true); const response = await FetchService.getTimesSeries(); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } const data = await response.json(); setTimeseries(data); setIsLoadingTimesseries(false); } catch (error) { console.error('Error fetching time series data:', error); } // donut await handleYearSubmit(2020); })(); }, []); return ( <>

L’évolution du prix de vente moyen du mètre carré

{isLoadingTimeseries? ( ): ( )}

Nombre des ventes par période

{isLoadingBar? ( ) : ( )}

Répartition des ventes par régions

{isLoadingDonut? ( ):(
)}
); }