Skip to content

Commit

Permalink
fix: handle cases where the flag name causes API errors (or other err…
Browse files Browse the repository at this point in the history
…ors occur)

This commit fixes a bug where the frontend would crash if the flag
name was invalid (such as `..`).
  • Loading branch information
thomasheartman committed Oct 14, 2024
1 parent d8ddb57 commit 5b4b813
Showing 1 changed file with 23 additions and 10 deletions.
33 changes: 23 additions & 10 deletions frontend/src/component/personalDashboard/FlagMetricsChart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,12 @@ const useFlagMetrics = (
environment: string | null,
hoursBack: number,
) => {
const { featureMetrics: metrics = [], loading } = useFeatureMetricsRaw(
flagName,
hoursBack,
);
const {
featureMetrics: metrics = [],
loading,
error,
} = useFeatureMetricsRaw(flagName, hoursBack);

const sortedMetrics = useMemo(() => {
return [...metrics].sort((metricA, metricB) => {
return metricA.timestamp.localeCompare(metricB.timestamp);
Expand All @@ -151,7 +153,7 @@ const useFlagMetrics = (
return createBarChartOptions(theme, hoursBack, locationSettings);
}, [theme, hoursBack, locationSettings]);

return { data, options, loading };
return { data, options, loading, error };
};

const EnvironmentSelect: FC<{
Expand Down Expand Up @@ -222,11 +224,22 @@ export const FlagMetricsChart: FC<{
const { environment, setEnvironment, activeEnvironments } =
useMetricsEnvironments(flag.project, flag.name);

const { data, options, loading } = useFlagMetrics(
flag.name,
environment,
hoursBack,
);
const {
data,
options,
loading,
error: metricsError,
} = useFlagMetrics(flag.name, environment, hoursBack);

if (metricsError) {
return (
<ChartContainer>
<PlaceholderFlagMetricsChart
label={`Couldn't fetch metrics for the current flag. This may be a transient error, or your flag name ("${flag.name}") may be causing issues.`}
/>
</ChartContainer>
);
}

const noData = data.datasets[0].data.length === 0;

Expand Down

0 comments on commit 5b4b813

Please sign in to comment.