From fa3b839692c17a3705680cbc91bb8c6ec31f924a Mon Sep 17 00:00:00 2001 From: BrunoQuaresma Date: Wed, 4 Oct 2023 12:50:38 +0000 Subject: [PATCH 1/2] fix(site): fix orphan values on insights --- .../TemplateInsightsPage.stories.tsx | 5 +++++ .../TemplateInsightsPage/TemplateInsightsPage.tsx | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.stories.tsx b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.stories.tsx index 889db073a6c1b..018c53d9ddd33 100644 --- a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.stories.tsx +++ b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.stories.tsx @@ -162,6 +162,11 @@ export const Loaded: Story = { value: "us-west2-a", count: 1, }, + // Test orphan values + { + value: "us-west-orphan", + count: 1, + }, ], }, { diff --git a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx index 25226c9bc89fd..e4cd8c23cbc58 100644 --- a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx +++ b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx @@ -472,7 +472,14 @@ const ParameterUsageLabel = ({ parameter: TemplateParameterUsage; }) => { if (parameter.options) { - const option = parameter.options.find((o) => o.value === usage.value)!; + const option = parameter.options.find((o) => o.value === usage.value); + + // Sometimes can happen to have orphan values where the value was computed + // but the option was deleted + if (!option) { + return null; + } + const icon = option.icon; const label = option.name; From 10e10f1e1a0ef8c12f3ff728e2a56ff2a0e85666 Mon Sep 17 00:00:00 2001 From: BrunoQuaresma Date: Wed, 4 Oct 2023 13:08:29 +0000 Subject: [PATCH 2/2] Fix orphan filter --- .../TemplateInsightsPage.tsx | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx index e4cd8c23cbc58..d023d9be468d1 100644 --- a/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx +++ b/site/src/pages/TemplatePage/TemplateInsightsPage/TemplateInsightsPage.tsx @@ -436,6 +436,7 @@ const TemplateParametersUsagePanel = ({ {parameter.values .sort((a, b) => b.count - a.count) + .filter((usage) => filterOrphanValues(usage, parameter)) .map((usage, usageIndex) => ( { + if (parameter.options) { + return parameter.options.some((o) => o.value === usage.value); + } + return true; +}; + const ParameterUsageRow = styled(Box)(({ theme }) => ({ display: "flex", alignItems: "baseline", @@ -472,14 +483,7 @@ const ParameterUsageLabel = ({ parameter: TemplateParameterUsage; }) => { if (parameter.options) { - const option = parameter.options.find((o) => o.value === usage.value); - - // Sometimes can happen to have orphan values where the value was computed - // but the option was deleted - if (!option) { - return null; - } - + const option = parameter.options.find((o) => o.value === usage.value)!; const icon = option.icon; const label = option.name;