diff --git a/frontend/app/components/Funnels/FunnelWidget/FunnelBar.tsx b/frontend/app/components/Funnels/FunnelWidget/FunnelBar.tsx
index 4e35ce2f3..5530a550c 100644
--- a/frontend/app/components/Funnels/FunnelWidget/FunnelBar.tsx
+++ b/frontend/app/components/Funnels/FunnelWidget/FunnelBar.tsx
@@ -8,7 +8,18 @@ interface Props {
filter: any;
}``
function FunnelBar(props: Props) {
- const { completed, dropped, filter } = props;
+ const { filter } = props;
+ const { completed, dropped } = filter;
+
+ const calculatePercentage = (completed: number, dropped: number) => {
+ const total = completed + dropped;
+ if (total === 0) {
+ return 0;
+ }
+ return Math.round((completed / total) * 100);
+ }
+ const completedPercentage = calculatePercentage(completed, dropped);
+ console.log('completedPercentage', completedPercentage)
return (
@@ -23,7 +34,7 @@ function FunnelBar(props: Props) {
overflow: 'hidden',
}}>
-
10%
+
{completedPercentage}%
- {13}
+ {completed}
completed
- 20
+ {dropped}
Dropped off
diff --git a/frontend/app/mstore/metricStore.ts b/frontend/app/mstore/metricStore.ts
index 2c60141b3..eb9147620 100644
--- a/frontend/app/mstore/metricStore.ts
+++ b/frontend/app/mstore/metricStore.ts
@@ -192,7 +192,7 @@ export default class MetricStore implements IMetricStore {
}
const sampleJson = {
- metricId: 1,
+ // metricId: 1,
name: "Funnel Sample",
metricType: 'funnel',
series: [
@@ -214,15 +214,15 @@ const sampleJson = {
value: ['/sessions'],
percent: 80,
completed: 40,
- dropped: 20,
+ dropped: 60,
},
{
type: 'CLICK',
operator: 'on',
value: ['DASHBOARDS'],
percent: 80,
- completed: 40,
- dropped: 20,
+ completed: 10,
+ dropped: 90,
}
]
}
diff --git a/frontend/app/mstore/types/filterItem.ts b/frontend/app/mstore/types/filterItem.ts
index 45442cc4d..291fd6f8a 100644
--- a/frontend/app/mstore/types/filterItem.ts
+++ b/frontend/app/mstore/types/filterItem.ts
@@ -15,6 +15,8 @@ export default class FilterItem {
operatorOptions: any[] = []
options: any[] = []
isActive: boolean = true
+ completed: number = 0
+ dropped: number = 0
constructor(data: any = {}) {
makeAutoObservable(this, {
@@ -65,6 +67,9 @@ export default class FilterItem {
this.operator = json.operator
this.filters = _filter.type === FilterType.SUB_FILTERS && json.filters ? json.filters.map(i => new FilterItem().fromJson(i, json.type)) : []
+
+ this.completed = json.completed
+ this.dropped = json.dropped
return this
}