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 @@