diff --git a/play-life-web/src/components/FullStatistics.jsx b/play-life-web/src/components/FullStatistics.jsx index 2a49177..9063966 100644 --- a/play-life-web/src/components/FullStatistics.jsx +++ b/play-life-web/src/components/FullStatistics.jsx @@ -17,8 +17,6 @@ import { getAllProjectsSorted, getProjectColor, sortProjectsLikeCurrentWeek } fr // Экспортируем для обратной совместимости (если используется в других местах) export { getProjectColorByIndex } from '../utils/projectUtils' -const formatWeekKey = ({ year, week }) => `${year}-W${week.toString().padStart(2, '0')}` - const parseWeekKey = (weekKey) => { const [yearStr, weekStr] = weekKey.split('-W') return { year: Number(yearStr), week: Number(weekStr) } @@ -34,36 +32,6 @@ const compareWeekKeys = (a, b) => { return weekA - weekB } -// Возвращает понедельник ISO-недели -const getDateOfISOWeek = (week, year) => { - const simple = new Date(year, 0, 1 + (week - 1) * 7) - const dayOfWeek = simple.getDay() || 7 // Sunday -> 7 - if (dayOfWeek !== 1) { - simple.setDate(simple.getDate() + (1 - dayOfWeek)) - } - simple.setHours(0, 0, 0, 0) - return simple -} - -const getISOWeekInfo = (date) => { - const target = new Date(date.getTime()) - target.setHours(0, 0, 0, 0) - target.setDate(target.getDate() + 4 - (target.getDay() || 7)) - const year = target.getFullYear() - const yearStart = new Date(year, 0, 1) - const week = Math.ceil(((target - yearStart) / 86400000 + 1) / 7) - return { year, week } -} - -const getPrevWeekKey = (weekKey) => { - const { year, week } = parseWeekKey(weekKey) - const currentWeekDate = getDateOfISOWeek(week, year) - const prevWeekDate = new Date(currentWeekDate.getTime()) - prevWeekDate.setDate(prevWeekDate.getDate() - 7) - const prevWeekInfo = getISOWeekInfo(prevWeekDate) - return formatWeekKey(prevWeekInfo) -} - ChartJS.register( CategoryScale, LinearScale, @@ -94,22 +62,6 @@ function FullStatistics({ selectedProject, onClearSelection, data, loading, erro projectsMap[projectName][weekKey] = parseFloat(item.total_score) }) - // Добавляем дополнительную неделю со значением 0, - // если первая неделя проекта имеет ненулевое значение - Object.values(projectsMap).forEach((weeks) => { - const projectWeeks = Object.keys(weeks) - if (!projectWeeks.length) return - - const sortedProjectWeeks = projectWeeks.sort(compareWeekKeys) - const firstWeekKey = sortedProjectWeeks[0] - const firstScore = weeks[firstWeekKey] - - if (firstScore !== 0) { - const zeroWeekKey = getPrevWeekKey(firstWeekKey) - weeks[zeroWeekKey] = 0 - } - }) - // Собираем все уникальные недели и сортируем их по году и неделе const allWeeks = new Set() Object.values(projectsMap).forEach(weeks => {