Files

41 lines
923 B
Plaintext

@implements IDisposable
@inject NavigationManager NavigationManager
@inject AnalyticsService AnalyticsService
@code {
protected override void OnInitialized()
{
NavigationManager.LocationChanged += OnLocationChanged;
}
private async void OnLocationChanged(object? sender, LocationChangedEventArgs e)
{
await TrackPageView(e.Location);
}
private async Task TrackPageView(string url)
{
try
{
var relativePath = NavigationManager.ToBaseRelativePath(url);
if (!relativePath.StartsWith("/"))
{
relativePath = "/" + relativePath;
}
await AnalyticsService.TrackPageView(relativePath);
}
catch
{
// Ignore errors during tracking
}
}
public void Dispose()
{
NavigationManager.LocationChanged -= OnLocationChanged;
}
}