umami tracking

This commit is contained in:
DaKheera47
2026-01-16 15:00:46 +00:00
parent 072feaf373
commit e56aa1aa03
3 changed files with 64 additions and 6 deletions
+14
View File
@@ -19,6 +19,7 @@ import type {
VisaSponsorStatusResponse,
VisaSponsor,
} from '../../shared/types';
import { trackEvent } from '../lib/analytics';
const API_BASE = '/api';
@@ -116,6 +117,12 @@ export async function searchUkVisaJobs(input: {
searchTerm?: string;
page?: number;
}): Promise<UkVisaJobsSearchResponse> {
if (input.searchTerm?.trim()) {
trackEvent('ukvisajobs_search', {
searchTerm: input.searchTerm.trim(),
page: input.page ?? 1,
});
}
return fetchApi<UkVisaJobsSearchResponse>('/ukvisajobs/search', {
method: 'POST',
body: JSON.stringify(input),
@@ -202,6 +209,13 @@ export async function searchVisaSponsors(input: {
limit?: number;
minScore?: number;
}): Promise<VisaSponsorSearchResponse> {
if (input.query?.trim()) {
trackEvent('visa_sponsor_search', {
query: input.query.trim(),
limit: input.limit,
minScore: input.minScore,
});
}
return fetchApi<VisaSponsorSearchResponse>('/visa-sponsors/search', {
method: 'POST',
body: JSON.stringify(input),
+14
View File
@@ -0,0 +1,14 @@
type UmamiTracker = {
track: (event: string, data?: Record<string, unknown>) => void;
};
declare global {
interface Window {
umami?: UmamiTracker;
}
}
export function trackEvent(event: string, data?: Record<string, unknown>) {
if (typeof window === 'undefined') return;
window.umami?.track(event, data);
}