Skip to content

Commit 88e4313

Browse files
authored
refactor: create custom tracking APL-366 (#4126)
1 parent 2d526f4 commit 88e4313

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

app/domains/prozesskostenhilfe/formular/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { persoenlicheDatenXstateConfig } from "./persoenlicheDaten/xStateConfig"
3131
import { belegeStrings } from "./stringReplacements";
3232
import { type ProzesskostenhilfeFormularUserData } from "./userData";
3333
import { abgabeXstateConfig } from "./abgabe/xstateConfig";
34+
import trackNotDoneStateAbgabeUeberpruefung from "../services/trackNotDoneStateAbgabeUeberpruefung";
3435

3536
const steps = xStateTargetsFromPagesConfig(prozesskostenhilfeFormularPages);
3637

@@ -149,4 +150,7 @@ export const prozesskostenhilfeFormular = {
149150
...belegeStrings(context),
150151
...getGrundvoraussetzungenStringReplacements(context),
151152
}),
153+
asyncFlowActions: {
154+
"/weitere-angaben": trackNotDoneStateAbgabeUeberpruefung,
155+
},
152156
} satisfies Flow;
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { sendCustomAnalyticsEvent } from "~/services/analytics/customEvent";
2+
import { type ProzesskostenhilfeFormularUserData } from "../formular/userData";
3+
4+
const getNotDoneStates = (userData: ProzesskostenhilfeFormularUserData) => {
5+
if (!userData.pageData?.subflowDoneStates) {
6+
return {};
7+
}
8+
9+
return (
10+
!!userData.pageData?.subflowDoneStates &&
11+
Object.entries(userData.pageData.subflowDoneStates)
12+
.filter(([stepId]) => !stepId.startsWith("/abgabe"))
13+
.filter(([, subflowDone]) => !subflowDone)
14+
);
15+
};
16+
17+
const trackNotDoneStateAbgabeUeberpruefung = (
18+
request: Request,
19+
userData: ProzesskostenhilfeFormularUserData,
20+
) => {
21+
const notDoneStates = getNotDoneStates(userData);
22+
23+
if (Object.keys(notDoneStates).length === 0) {
24+
return Promise.resolve();
25+
}
26+
27+
return Promise.resolve(
28+
sendCustomAnalyticsEvent({
29+
request,
30+
eventName: "abgabe ueberpruefung not done states",
31+
properties: {
32+
notDoneStates: notDoneStates,
33+
},
34+
}),
35+
);
36+
};
37+
38+
export default trackNotDoneStateAbgabeUeberpruefung;

0 commit comments

Comments
 (0)