Commit 2ff6d50
authored
Fix duplicate page navigation tracking in Application Insights (#773)
### Summary & Motivation
Fix duplicate page view tracking that occurred when navigating between
pages in the single-page application. Application Insights'
enableAutoRouteTracking feature was causing duplicate tracking with
TanStack Router because both systems independently detected navigation
events.
- Disable enableAutoRouteTracking in Application Insights configuration
- Create custom PageTracker component that integrates properly with
TanStack Router
- Track initial page load and subsequent navigations without duplicates
- Maintain existing JavaScript error tracking functionality
The enableAutoRouteTracking feature is designed for React Router and
listens to browser history changes (popstate, pushState/replaceState,
hashchange). Since TanStack Router also manipulates browser history,
both were detecting the same navigation event and sending duplicate page
views. The custom PageTracker component uses TanStack Router's onLoad
event and tracks pathname changes to ensure each navigation is tracked
exactly once.
### Downstream projects
1. Add the PageTracker component to
`your-self-contained-system/__root.tsx`:
```diff
import { queryClient } from "@/shared/lib/api/client";
+import { PageTracker } from
"@repo/infrastructure/applicationInsights/PageTracker";
import { AuthenticationProvider } from
"@repo/infrastructure/auth/AuthenticationProvider";
function Root() {
return (
<QueryClientProvider client={queryClient}>
<ThemeModeProvider>
<ReactAriaRouterProvider>
<AuthenticationProvider navigate={(options) => navigate(options)}>
+ <PageTracker />
<Outlet />
</AuthenticationProvider>
</ReactAriaRouterProvider>
</ThemeModeProvider>
</QueryClientProvider>
);
}
```
### Checklist
- [x] I have added tests, or done manual regression tests
- [x] I have updated the documentation, if necessaryFile tree
6 files changed
+68
-8
lines changed- application
- account-management/WebApp/routes
- back-office/WebApp/routes
6 files changed
+68
-8
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
| 62 | + | |
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| |||
Lines changed: 5 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
| 37 | + | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
64 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
Lines changed: 35 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
Lines changed: 22 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
98 | 99 | | |
99 | 100 | | |
100 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
101 | 105 | | |
102 | 106 | | |
103 | 107 | | |
| |||
270 | 274 | | |
271 | 275 | | |
272 | 276 | | |
273 | | - | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
274 | 286 | | |
275 | 287 | | |
276 | 288 | | |
| |||
285 | 297 | | |
286 | 298 | | |
287 | 299 | | |
288 | | - | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
289 | 309 | | |
290 | 310 | | |
291 | 311 | | |
| |||
0 commit comments