diff --git a/frontend/src/proprietary/components/shared/config/configSections/AdminUsageSection.tsx b/frontend/src/proprietary/components/shared/config/configSections/AdminUsageSection.tsx index 63866f304..670b26133 100644 --- a/frontend/src/proprietary/components/shared/config/configSections/AdminUsageSection.tsx +++ b/frontend/src/proprietary/components/shared/config/configSections/AdminUsageSection.tsx @@ -158,18 +158,21 @@ const AdminUsageSection: React.FC = () => { const endpoints = (data?.endpoints ?? []).map((endpoint) => ({ endpoint: endpoint.endpoint ?? t('usage.table.unknownEndpoint', 'Unknown endpoint'), - visits: Number.isFinite(endpoint.visits) ? endpoint.visits : 0, - percentage: Number.isFinite(endpoint.percentage) ? endpoint.percentage : 0, + visits: Number.isFinite(endpoint.visits) ? Math.max(0, endpoint.visits) : 0, + percentage: Number.isFinite(endpoint.percentage) ? Math.max(0, endpoint.percentage) : 0, })); - const chartData = endpoints.map((e) => ({ label: e.endpoint, value: e.visits })); + const chartData = endpoints.map((e) => ({ + label: e.endpoint, + value: Number.isFinite(e.visits) ? Math.max(0, e.visits) : 0, + })); const displayedVisits = endpoints.reduce((sum, e) => sum + e.visits, 0); const totalVisits = Number.isFinite(data?.totalVisits) - ? (data?.totalVisits as number) + ? Math.max(0, data?.totalVisits as number) : displayedVisits; const totalEndpoints = Number.isFinite(data?.totalEndpoints) - ? (data?.totalEndpoints as number) + ? Math.max(0, data?.totalEndpoints as number) : endpoints.length; const displayedPercentage = totalVisits > 0 diff --git a/frontend/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsChart.tsx b/frontend/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsChart.tsx index 58fa8aae5..9e65494c4 100644 --- a/frontend/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsChart.tsx +++ b/frontend/src/proprietary/components/shared/config/configSections/usage/UsageAnalyticsChart.tsx @@ -73,13 +73,19 @@ interface UsageAnalyticsChartProps { const UsageAnalyticsChart: React.FC = ({ data }) => { const { t } = useTranslation(); + const safeMaxValue = Math.max(...data.map((d) => d.value).filter((value) => Number.isFinite(value)), 1); + const safeData = data.map((item) => ({ + label: item.label, + value: Number.isFinite(item.value) ? Math.max(0, item.value) : 0, + })); + return ( {t('usage.chart.title', 'Endpoint Usage Chart')} - d.value), 1)} /> + ); diff --git a/frontend/src/proprietary/testing/serverExperienceSimulations.ts b/frontend/src/proprietary/testing/serverExperienceSimulations.ts index 0aa745d54..45c9fc90b 100644 --- a/frontend/src/proprietary/testing/serverExperienceSimulations.ts +++ b/frontend/src/proprietary/testing/serverExperienceSimulations.ts @@ -48,7 +48,7 @@ const FREE_LICENSE_INFO: LicenseInfo = { const BASE_NO_LOGIN_CONFIG: AppConfig = { enableAnalytics: true, - appVersion: '2.0.0', + appVersion: '2.1.3', serverCertificateEnabled: false, enableAlphaFunctionality: false, serverPort: 8080,