diff --git a/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx b/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx
index 7b4e959e9..ceab4346d 100644
--- a/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx
+++ b/frontend/app/components/Dashboard/components/WidgetForm/WidgetFormNew.tsx
@@ -1,176 +1,172 @@
import React from 'react';
-import {Card, Space, Typography, Button, Alert} from "antd";
-import {useStore} from "App/mstore";
-import {eventKeys} from "Types/filter/newFilter";
+import { Card, Space, Typography, Button, Alert } from 'antd';
+import { useStore } from 'App/mstore';
+import { eventKeys } from 'Types/filter/newFilter';
import {
- CLICKMAP,
- ERRORS,
- FUNNEL,
- INSIGHTS,
- PERFORMANCE,
- RESOURCE_MONITORING,
- RETENTION,
- TABLE,
- USER_PATH, WEB_VITALS
-} from "App/constants/card";
-import FilterSeries from "Components/Dashboard/components/FilterSeries/FilterSeries";
-import {metricOf} from "App/constants/filterOptions";
-import {AudioWaveform, ChevronDown, ChevronUp, PlusIcon} from "lucide-react";
-import {observer} from "mobx-react-lite";
-import AddStepButton from "Components/Dashboard/components/FilterSeries/AddStepButton";
-import {Icon} from "UI";
-import FilterItem from "Shared/Filters/FilterItem";
-import {FilterKey} from "Types/filter/filterType";
+ CLICKMAP,
+ ERRORS,
+ FUNNEL,
+ INSIGHTS,
+ PERFORMANCE,
+ RESOURCE_MONITORING,
+ RETENTION,
+ TABLE,
+ USER_PATH, WEB_VITALS
+} from 'App/constants/card';
+import FilterSeries from 'Components/Dashboard/components/FilterSeries/FilterSeries';
+import { metricOf } from 'App/constants/filterOptions';
+import { AudioWaveform, ChevronDown, ChevronUp, PlusIcon } from 'lucide-react';
+import { observer } from 'mobx-react-lite';
+import AddStepButton from 'Components/Dashboard/components/FilterSeries/AddStepButton';
+import { Icon } from 'UI';
+import FilterItem from 'Shared/Filters/FilterItem';
+import { FilterKey } from 'Types/filter/filterType';
function WidgetFormNew() {
- const {metricStore, dashboardStore, aiFiltersStore} = useStore();
- const metric: any = metricStore.instance;
+ const { metricStore, dashboardStore, aiFiltersStore } = useStore();
+ const metric: any = metricStore.instance;
- const eventsLength = metric.series[0].filter.filters.filter((i: any) => i && i.isEvent).length;
- const filtersLength = metric.series[0].filter.filters.filter((i: any) => i && !i.isEvent).length;
- const isClickMap = metric.metricType === CLICKMAP;
- const isPathAnalysis = metric.metricType === USER_PATH;
- const excludeFilterKeys = isClickMap || isPathAnalysis ? eventKeys : [];
- const hasFilters = filtersLength > 0 || eventsLength > 0;
- const isPredefined = [ERRORS, PERFORMANCE, RESOURCE_MONITORING, WEB_VITALS].includes(metric.metricType);
+ const eventsLength = metric.series[0].filter.filters.filter((i: any) => i && i.isEvent).length;
+ const filtersLength = metric.series[0].filter.filters.filter((i: any) => i && !i.isEvent).length;
+ const isClickMap = metric.metricType === CLICKMAP;
+ const isPathAnalysis = metric.metricType === USER_PATH;
+ const excludeFilterKeys = isClickMap || isPathAnalysis ? eventKeys : [];
+ const hasFilters = filtersLength > 0 || eventsLength > 0;
+ const isPredefined = [ERRORS, PERFORMANCE, RESOURCE_MONITORING, WEB_VITALS].includes(metric.metricType);
- return isPredefined ? : (
-
-
-
- {!hasFilters && (
-
- )}
-
-
- {hasFilters && (
-
- )}
-
- );
+ return isPredefined ? : (
+
+
+ {!hasFilters && ()}
+ {hasFilters && ()}
+
+ );
}
export default observer(WidgetFormNew);
-function DefineSteps({metric, excludeFilterKeys}: any) {
- return (
-
- );
+function DefineSteps({ metric, excludeFilterKeys }: any) {
+ return (
+
+
+
+ );
}
-const FilterSection = observer(({metric, excludeFilterKeys}: any) => {
- // const timeseriesOptions = metricOf.filter((i) => i.type === 'timeseries');
- // const tableOptions = metricOf.filter((i) => i.type === 'table');
- const isTable = metric.metricType === TABLE;
- const isClickMap = metric.metricType === CLICKMAP;
- const isFunnel = metric.metricType === FUNNEL;
- const isInsights = metric.metricType === INSIGHTS;
- const isPathAnalysis = metric.metricType === USER_PATH;
- const isRetention = metric.metricType === RETENTION;
- const canAddSeries = metric.series.length < 3;
- const eventsLength = metric.series[0].filter.filters.filter((i: any) => i && i.isEvent).length;
- // const cannotSaveFunnel = isFunnel && (!metric.series[0] || eventsLength <= 1);
+const FilterSection = observer(({ metric, excludeFilterKeys }: any) => {
+ // const timeseriesOptions = metricOf.filter((i) => i.type === 'timeseries');
+ // const tableOptions = metricOf.filter((i) => i.type === 'table');
+ const isTable = metric.metricType === TABLE;
+ const isClickMap = metric.metricType === CLICKMAP;
+ const isFunnel = metric.metricType === FUNNEL;
+ const isInsights = metric.metricType === INSIGHTS;
+ const isPathAnalysis = metric.metricType === USER_PATH;
+ const isRetention = metric.metricType === RETENTION;
+ const canAddSeries = metric.series.length < 3;
+ const eventsLength = metric.series[0].filter.filters.filter((i: any) => i && i.isEvent).length;
+ // const cannotSaveFunnel = isFunnel && (!metric.series[0] || eventsLength <= 1);
- const isSingleSeries = isTable || isFunnel || isClickMap || isInsights || isRetention
+ const isSingleSeries = isTable || isFunnel || isClickMap || isInsights || isRetention;
- // const onAddFilter = (filter: any) => {
- // metric.series[0].filter.addFilter(filter);
- // metric.updateKey('hasChanged', true)
- // }
+ // const onAddFilter = (filter: any) => {
+ // metric.series[0].filter.addFilter(filter);
+ // metric.updateKey('hasChanged', true)
+ // }
- return (
- <>
- {
- metric.series.length > 0 && metric.series
- .slice(0, isSingleSeries ? 1 : metric.series.length)
- .map((series: any, index: number) => (
-
- metric.updateKey('hasChanged', true)}
- hideHeader={isTable || isClickMap || isInsights || isPathAnalysis || isFunnel}
- seriesIndex={index}
- series={series}
- onRemoveSeries={() => metric.removeSeries(index)}
- canDelete={metric.series.length > 1}
- emptyMessage={
- isTable
- ? 'Filter data using any event or attribute. Use Add Step button below to do so.'
- : 'Add user event or filter to define the series by clicking Add Step.'
- }
- expandable={isSingleSeries}
- />
-
- ))
- }
+ return (
+ <>
+ {
+ metric.series.length > 0 && metric.series
+ .slice(0, isSingleSeries ? 1 : metric.series.length)
+ .map((series: any, index: number) => (
+
+ metric.updateKey('hasChanged', true)}
+ hideHeader={isTable || isClickMap || isInsights || isPathAnalysis || isFunnel}
+ seriesIndex={index}
+ series={series}
+ onRemoveSeries={() => metric.removeSeries(index)}
+ canDelete={metric.series.length > 1}
+ emptyMessage={
+ isTable
+ ? 'Filter data using any event or attribute. Use Add Step button below to do so.'
+ : 'Add user event or filter to define the series by clicking Add Step.'
+ }
+ expandable={isSingleSeries}
+ />
+
+ ))
+ }
- {!isSingleSeries && canAddSeries && (
-
-
+
+ )}
+ >
+ );
+});
-const PathAnalysisFilter = observer(({metric}: any) => (
-
-
- metric.updateStartPoint(val)}
- onRemoveFilter={() => {
- }}
- />
-
-
+const PathAnalysisFilter = observer(({ metric }: any) => (
+
+
+ metric.updateStartPoint(val)}
+ onRemoveFilter={() => {
+ }}
+ />
+
+
));
const AdditionalFilters = observer(() => {
- const {metricStore, dashboardStore, aiFiltersStore} = useStore();
- const metric: any = metricStore.instance;
+ const { metricStore, dashboardStore, aiFiltersStore } = useStore();
+ const metric: any = metricStore.instance;
- return (
-
- {metric.metricType === USER_PATH && }
-
- )
+ return (
+ //
+ metric.metricType === USER_PATH &&
+ //
+ );
});
const PredefinedMessage = () => (
-
+
);