1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-05 17:53:12 +02:00

fix: do not show flagsPerUser when calculation results to NaN

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
This commit is contained in:
andreas-unleash 2024-03-21 09:43:28 +02:00
parent 6518e6081a
commit 7b399d24e4
No known key found for this signature in database
GPG Key ID: 86EF87A739B39099
4 changed files with 17 additions and 10 deletions

View File

@ -39,6 +39,7 @@ interface IChartsProps {
potentiallyStale: number;
averageUsers: number;
averageHealth?: string;
flagsPerUser?: string;
};
avgDaysToProduction: number;
loading: boolean;
@ -124,9 +125,7 @@ export const Charts: VFC<IChartsProps> = ({
<FlagStats
count={summary.total}
flagsPerUser={
showAllProjects
? (summary.total / users.total).toFixed(2)
: ''
showAllProjects ? summary.flagsPerUser : ''
}
/>
</Widget>

View File

@ -83,11 +83,7 @@ export const FlagStats: React.FC<IFlagStatsProps> = ({
</StyledRingContainer>
<ConditionallyRender
condition={
flagsPerUser !== undefined &&
flagsPerUser !== '' &&
flagsPerUser !== 'NaN'
}
condition={flagsPerUser !== undefined && flagsPerUser !== ''}
show={
<StyledInsightsContainer>
<StyledTextContainer>

View File

@ -22,7 +22,10 @@ export const useDashboardData = (
);
const groupedMetricsData = useGroupedProjectTrends(metricsData);
const summary = useFilteredFlagsSummary(projectsData);
const summary = useFilteredFlagsSummary(
projectsData,
executiveDashboardData.users,
);
const avgDaysToProduction = useAvgTimeToProduction(groupedProjectsData);

View File

@ -1,9 +1,13 @@
import { useMemo } from 'react';
import type { ExecutiveSummarySchemaProjectFlagTrendsItem } from 'openapi';
import type {
ExecutiveSummarySchema,
ExecutiveSummarySchemaProjectFlagTrendsItem,
} from 'openapi';
// NOTE: should we move project filtering to the backend?
export const useFilteredFlagsSummary = (
filteredProjectFlagTrends: ExecutiveSummarySchemaProjectFlagTrendsItem[],
users: ExecutiveSummarySchema['users'],
) =>
useMemo(() => {
const lastWeekId = filteredProjectFlagTrends.reduce((prev, current) => {
@ -38,8 +42,13 @@ export const useFilteredFlagsSummary = (
},
);
const flagsPerUser = sum.total / users.total;
return {
...sum,
flagsPerUser: Number.isNaN(flagsPerUser)
? 'N/A'
: flagsPerUser.toFixed(2),
averageUsers,
averageHealth: sum.total
? ((sum.active / (sum.total || 1)) * 100).toFixed(0)