From 64eaf21928dc931c3fb43b01366a88a9e57e95f9 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Wed, 27 Aug 2025 15:28:03 +0200 Subject: [PATCH] feat: add impact metrics flag modal (#10550) --- .../FeatureMetrics/FeatureImpactMetrics.tsx | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx b/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx index 401516886e..e431c8eb90 100644 --- a/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx +++ b/frontend/src/component/feature/FeatureView/FeatureMetrics/FeatureImpactMetrics.tsx @@ -2,6 +2,9 @@ import { PageContent } from 'component/common/PageContent/PageContent.tsx'; import { PageHeader } from '../../../common/PageHeader/PageHeader.tsx'; import { Button, styled, Typography } from '@mui/material'; import Add from '@mui/icons-material/Add'; +import { useImpactMetricsMetadata } from 'hooks/api/getters/useImpactMetricsMetadata/useImpactMetricsMetadata.ts'; +import { useMemo, useState } from 'react'; +import { ChartConfigModal } from '../../../impact-metrics/ChartConfigModal/ChartConfigModal.tsx'; const StyledHeaderTitle = styled(Typography)(({ theme }) => ({ fontSize: theme.fontSizes.mainHeader, @@ -10,6 +13,28 @@ const StyledHeaderTitle = styled(Typography)(({ theme }) => ({ })); export const FeatureImpactMetrics = () => { + const [modalOpen, setModalOpen] = useState(false); + + const { + metadata, + loading: metadataLoading, + error: metadataError, + } = useImpactMetricsMetadata(); + + const handleAddChart = () => { + setModalOpen(true); + }; + + const metricSeries = useMemo(() => { + if (!metadata?.series) { + return []; + } + return Object.entries(metadata.series).map(([name, rest]) => ({ + name, + ...rest, + })); + }, [metadata]); + return ( { } /> + + setModalOpen(false)} + onSave={() => {}} + initialConfig={undefined} + metricSeries={metricSeries} + loading={metadataLoading} + /> ); };