import Head from 'next/head' import { Card, Container } from 'react-bootstrap' import ComparativeBarChart from '../components/ComparativeBarChart' import { useEffect, useState } from 'react' import styles from "../styles/Home.module.css" import useStats from '../hooks/stats' import getDay from 'date-fns/getDay' import getWeek from '../util' export default function Home() { const [datasets, setDatasets] = useState(null); const [averages, setAverages] = useState(null); const [differences, setDifferences] = useState(null); useEffect(() => { if (datasets) { let newAverages = [] let newDifferences = [] for (let i = 0; i < datasets.length; i++) { let currentEntriesCount = 0; let previousEntriesCount = 0; for(let x of datasets[i].current) { if(x != null) { currentEntriesCount++; } } for(let x of datasets[i].previous) { if(x != null) { previousEntriesCount++; } } if(currentEntriesCount != 0) { newAverages[i] = datasets[i].current.reduce((a, b) => a + b) / currentEntriesCount; if(previousEntriesCount > 0) { newDifferences[i] = newAverages[i] - datasets[i].previous.reduce((a, b) => a + b) / datasets[i].previous.length }else { newDifferences[i] = newAverages[i] } }else { newDifferences[i] = 0; newAverages[i] = 0; } } setAverages(newAverages); setDifferences(newDifferences); } }, [datasets]); const { stats, loading, error } = useStats(14, "jour"); useEffect(() => { console.log(getDay(new Date("2023-03-20T14:00:00.000Z"))) }) useEffect(() => { if(!error && !loading) { let reviewCount = [null,null,null,null,null,null,null]; let reviewCountPrev = [null,null,null,null,null,null,null] let reviewAvg = [null,null,null,null,null,null,null] let reviewAvgPrev = [null,null,null,null,null,null,null] for(let i = 0; i < stats.length; i++) { let date = new Date(Date.parse(stats[i].date)) let now = new Date(); let day = (date.getDay() - 1) % 7; let week = getWeek(date, 1); let thisWeek = getWeek(now, 1); console.log({date,week,thisWeek,day}) if(week == thisWeek) { reviewCount[day] = stats[i].nb_avis; reviewAvg[day] = stats[i].moyenne_globale; }else if(week = thisWeek - 1){ reviewAvgPrev[day] = stats[i].moyenne_globale; reviewCountPrev[day] = stats[i].nb_avis; } } setDatasets([ { title: "Nombre d'avis", current: reviewCount, previous: reviewCountPrev }, { title: "Notes moyennes", current: reviewAvg, previous: reviewAvgPrev } ]) } }, [stats]); function dataVisualizer(title, current, previous, average, difference) { return