From a34a916b4618d5d15b0b8fa26024e65fb38487c9 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Wed, 4 Feb 2026 13:20:41 +0530 Subject: [PATCH] feat(reports): hide metrics in frontend reports UI Add useHiddenMetrics composable to filter hidden metrics from report keys. Update WootReports.vue to use the composable so hidden metrics are not fetched or displayed in the reports UI. --- .../dashboard/composables/useHiddenMetrics.js | 31 +++++++++++++++++++ .../reports/components/WootReports.vue | 9 +++++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 app/javascript/dashboard/composables/useHiddenMetrics.js diff --git a/app/javascript/dashboard/composables/useHiddenMetrics.js b/app/javascript/dashboard/composables/useHiddenMetrics.js new file mode 100644 index 000000000..ac2fcf832 --- /dev/null +++ b/app/javascript/dashboard/composables/useHiddenMetrics.js @@ -0,0 +1,31 @@ +import { computed } from 'vue'; +import { useStore } from 'dashboard/composables/store'; + +// Bidirectional alias mapping for consistency +const METRIC_ALIASES = { + avg_reply_time: 'reply_time', +}; + +export function useHiddenMetrics() { + const store = useStore(); + + const hiddenMetrics = computed(() => { + return ( + store.getters.getCurrentAccount?.settings?.report_hidden_metrics || [] + ); + }); + + const isMetricHidden = metricKey => { + const normalized = METRIC_ALIASES[metricKey] || metricKey; + return hiddenMetrics.value.includes(normalized); + }; + + const filterVisibleReportKeys = reportKeys => { + // Filter out hidden metrics from reportKeys object + return Object.fromEntries( + Object.entries(reportKeys).filter(([, value]) => !isMetricHidden(value)) + ); + }; + + return { hiddenMetrics, isMetricHidden, filterVisibleReportKeys }; +} diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/components/WootReports.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/components/WootReports.vue index b3d66a8eb..e494c0420 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/reports/components/WootReports.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/reports/components/WootReports.vue @@ -1,6 +1,7 @@