diff --git a/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx b/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx index 02421b6f9..7d1ee0165 100644 --- a/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx +++ b/frontend/app/components/Session_/OverviewPanel/OverviewPanel.tsx @@ -9,6 +9,7 @@ import TimelineScale from './components/TimelineScale'; import FeatureSelection from './components/FeatureSelection/FeatureSelection'; import TimelinePointer from './components/TimelinePointer'; import VerticalPointerLine from './components/VerticalPointerLine'; +import cn from 'classnames'; interface Props { resourceList: any[]; @@ -23,14 +24,14 @@ function OverviewPanel(props: Props) { return eventsList.filter((item: any) => item.type === TYPES.CLICKRAGE); }, [eventsList]); const scale = 100 / endTime; - const selectedFeatures = React.useMemo(() => ['NETWORK', 'ERRORS', 'EVENTS'], []); + const [selectedFeatures, setSelectedFeatures] = React.useState(['NETWORK', 'ERRORS', 'EVENTS']); return ( Overview
- {}} /> +
@@ -38,29 +39,17 @@ function OverviewPanel(props: Props) {
- } - /> -
- } - /> -
- } - /> + {selectedFeatures.map((feature: any, index: number) => ( +
+ } + /> +
+ ))}
diff --git a/frontend/app/components/Session_/OverviewPanel/components/FeatureSelection/FeatureSelection.tsx b/frontend/app/components/Session_/OverviewPanel/components/FeatureSelection/FeatureSelection.tsx index c4bb3905e..77a498785 100644 --- a/frontend/app/components/Session_/OverviewPanel/components/FeatureSelection/FeatureSelection.tsx +++ b/frontend/app/components/Session_/OverviewPanel/components/FeatureSelection/FeatureSelection.tsx @@ -13,59 +13,31 @@ interface Props { } function FeatureSelection(props: Props) { const { list } = props; - + const features = [NETWORK, ERRORS, EVENTS, CLICKRAGE, PERFORMANCE]; + const disabled = list.length >= 3; + return ( - { - console.log(e); - }} - label={NETWORK} - /> - { - console.log(e); - }} - label={ERRORS} - /> - { - console.log(e); - }} - label={EVENTS} - /> - { - console.log(e); - }} - label={CLICKRAGE} - /> - { - console.log(e); - }} - label={PERFORMANCE} - /> + {features.map((feature, index) => { + const checked = list.includes(feature); + const _disabled = disabled && !checked; + return ( + { + if (checked) { + props.updateList(list.filter((item: any) => item !== feature)); + } else { + props.updateList([...list, feature]); + } + }} + /> + ); + })} ); }