From 405d30bead62e7cdd1b522d5fa4ac990844b8aad Mon Sep 17 00:00:00 2001 From: poignatov Date: Fri, 6 Feb 2026 21:17:47 +0300 Subject: [PATCH] =?UTF-8?q?4.27.3:=20=D0=A4=D0=B8=D0=BA=D1=81=20undefined?= =?UTF-8?q?=20=D0=B2=20=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D0=BA=D0=B5=20Fitbit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSION | 2 +- play-life-web/package.json | 2 +- .../src/components/FitbitIntegration.jsx | 44 +++++++++++++------ 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/VERSION b/VERSION index 4b73353..680a06c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.27.2 +4.27.3 diff --git a/play-life-web/package.json b/play-life-web/package.json index 206968d..7255792 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "4.27.2", + "version": "4.27.3", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/components/FitbitIntegration.jsx b/play-life-web/src/components/FitbitIntegration.jsx index 83bb543..f3a5f6b 100644 --- a/play-life-web/src/components/FitbitIntegration.jsx +++ b/play-life-web/src/components/FitbitIntegration.jsx @@ -100,18 +100,34 @@ function FitbitIntegration({ onNavigate }) { throw new Error('Ошибка при загрузке статистики') } const data = await response.json() - setStats(data) + // Нормализуем данные, чтобы избежать undefined + const defaultGoal = { min: 0, max: 0 } + const normalizedStats = { + steps: { + value: data.steps?.value ?? 0, + goal: data.steps?.goal ?? defaultGoal + }, + floors: { + value: data.floors?.value ?? 0, + goal: data.floors?.goal ?? defaultGoal + }, + azm: { + value: data.azm?.value ?? 0, + goal: data.azm?.goal ?? defaultGoal + } + } + setStats(normalizedStats) // Обновляем цели из ответа if (data.steps?.goal) { setGoals({ steps: data.steps.goal, - floors: data.floors.goal, - azm: data.azm.goal + floors: data.floors?.goal ?? defaultGoal, + azm: data.azm?.goal ?? defaultGoal }) setEditedGoals({ steps: data.steps.goal, - floors: data.floors.goal, - azm: data.azm.goal + floors: data.floors?.goal ?? defaultGoal, + azm: data.azm?.goal ?? defaultGoal }) } } catch (error) { @@ -293,14 +309,14 @@ function FitbitIntegration({ onNavigate }) {
Шаги - - {stats.steps.value.toLocaleString()} / {stats.steps.goal.min}-{stats.steps.goal.max} + + {(stats.steps?.value ?? 0).toLocaleString()} / {stats.steps?.goal?.min ?? 0}-{stats.steps?.goal?.max ?? 0}
@@ -309,14 +325,14 @@ function FitbitIntegration({ onNavigate }) {
Этажи - - {stats.floors.value} / {stats.floors.goal.min}-{stats.floors.goal.max} + + {stats.floors?.value ?? 0} / {stats.floors?.goal?.min ?? 0}-{stats.floors?.goal?.max ?? 0}
@@ -325,14 +341,14 @@ function FitbitIntegration({ onNavigate }) {
Баллы кардио - - {stats.azm.value} / {stats.azm.goal.min}-{stats.azm.goal.max} + + {stats.azm?.value ?? 0} / {stats.azm?.goal?.min ?? 0}-{stats.azm?.goal?.max ?? 0}