From 08c5422d3589526bc6af2c97161228724d2f5bf6 Mon Sep 17 00:00:00 2001 From: Play Life Bot Date: Fri, 2 Jan 2026 16:29:58 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=A0=D1=95=D0=A1=E2=80=9A=D0=A0=D1=95?= =?UTF-8?q?=D0=A0=C2=B1=D0=A1=D0=82=D0=A0=C2=B0=D0=A0=C2=B6=D0=A0=C2=B5?= =?UTF-8?q?=D0=A0=D0=85=D0=A0=D1=91=D0=A0=C2=B5=20=D0=A0=C2=B1=D0=A0=C2=BB?= =?UTF-8?q?=D0=A0=D1=95=D0=A0=D1=94=D0=A0=C2=B0=20=D0=A0=D1=97=D0=A1=D0=82?= =?UTF-8?q?=D0=A0=D1=95=D0=A1=E2=80=A0=D0=A0=C2=B5=D0=A0=D0=85=D0=A1?= =?UTF-8?q?=E2=80=9A=D0=A0=C2=B0=20=D0=A0=D0=86=D0=A1=E2=80=B9=D0=A0=D1=97?= =?UTF-8?q?=D0=A0=D1=95=D0=A0=C2=BB=D0=A0=D0=85=D0=A0=C2=B5=D0=A0=D0=85?= =?UTF-8?q?=D0=A0=D1=91=D0=A1=D0=8F=20=D0=A0=D2=91=D0=A0=C2=B0=D0=A0=C2=B6?= =?UTF-8?q?=D0=A0=C2=B5=20=D0=A0=D1=97=D0=A1=D0=82=D0=A0=D1=91=20=D0=A0?= =?UTF-8?q?=D1=95=D0=A1=E2=80=9A=D0=A1=D0=83=D0=A1=D1=93=D0=A1=E2=80=9A?= =?UTF-8?q?=D0=A1=D0=83=D0=A1=E2=80=9A=D0=A0=D0=86=D0=A0=D1=91=D0=A0=D1=91?= =?UTF-8?q?=20=D0=A0=D1=97=D0=A1=D0=82=D0=A0=D1=95=D0=A0=C2=B5=D0=A0=D1=94?= =?UTF-8?q?=D0=A1=E2=80=9A=D0=A0=D1=95=D0=A0=D0=86=20(v2.7.3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- play-life-web/src/components/CurrentWeek.jsx | 34 +++++++++----------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/play-life-web/src/components/CurrentWeek.jsx b/play-life-web/src/components/CurrentWeek.jsx index 53456be..87578d9 100644 --- a/play-life-web/src/components/CurrentWeek.jsx +++ b/play-life-web/src/components/CurrentWeek.jsx @@ -3,7 +3,7 @@ import { getAllProjectsSorted, getProjectColor } from '../utils/projectUtils' function CurrentWeek({ onProjectClick, data, loading, error, onRetry, allProjectsData, onNavigate }) { // Обрабатываем данные: может быть объект с projects и total, или просто массив - const projectsData = data?.projects || (Array.isArray(data) ? data : []) + const projectsData = data?.projects || (Array.isArray(data) ? data : []) || [] // Показываем loading только если данных нет и идет загрузка if (loading && (!data || projectsData.length === 0)) { @@ -59,16 +59,8 @@ function CurrentWeek({ onProjectClick, data, loading, error, onRetry, allProject hasProgressData }) - if (!projectsData || projectsData.length === 0) { - return ( -
-
Нет данных для отображения
-
- ) - } - // Получаем отсортированный список всех проектов для синхронизации цветов - const allProjects = getAllProjectsSorted(allProjectsData, projectsData) + const allProjects = getAllProjectsSorted(allProjectsData, projectsData || []) const normalizePriority = (value) => { if (value === null || value === undefined) return Infinity @@ -77,7 +69,7 @@ function CurrentWeek({ onProjectClick, data, loading, error, onRetry, allProject } // Сортируем: сначала по priority (1, 2, ...; null в конце), затем по min_goal_score по убыванию - const sortedData = [...projectsData].sort((a, b) => { + const sortedData = (projectsData && projectsData.length > 0) ? [...projectsData].sort((a, b) => { const priorityA = normalizePriority(a.priority) const priorityB = normalizePriority(b.priority) @@ -88,7 +80,7 @@ function CurrentWeek({ onProjectClick, data, loading, error, onRetry, allProject const minGoalA = parseFloat(a.min_goal_score) || 0 const minGoalB = parseFloat(b.min_goal_score) || 0 return minGoalB - minGoalA - }) + }) : [] return (
@@ -99,10 +91,12 @@ function CurrentWeek({ onProjectClick, data, loading, error, onRetry, allProject
Выполнение целей
- {hasProgressData ? `${overallProgress.toFixed(1)}%` : 'N/A'} + {hasProgressData && typeof overallProgress === 'number' && Number.isFinite(overallProgress) + ? `${overallProgress.toFixed(1)}%` + : 'N/A'}
- {hasProgressData && ( + {hasProgressData && typeof overallProgress === 'number' && Number.isFinite(overallProgress) && (
{overallProgress >= 100 && ( @@ -178,15 +172,19 @@ function CurrentWeek({ onProjectClick, data, loading, error, onRetry, allProject
{sortedData.map((project, index) => { + if (!project || !project.project_name) { + return null + } + const projectColor = getProjectColor(project.project_name, allProjects) return (