27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
/**
|
|
* Central, extensible registry of known analytics event names. Adding a new
|
|
* event elsewhere in the app never requires a migration - the database
|
|
* column (collections/AnalyticsEvents.ts#eventName) is free-text - this
|
|
* list exists purely so `track()` calls get autocomplete/type-checking and
|
|
* the dashboard can show a nice German label instead of a raw event name.
|
|
*
|
|
* To add a new event: add one entry here, then call `track("your_event")`
|
|
* anywhere in the app (see lib/analytics/client.ts).
|
|
*/
|
|
export const ANALYTICS_EVENTS = {
|
|
page_view: "Seitenaufruf",
|
|
booking_started: "Buchung gestartet",
|
|
booking_completed: "Buchung abgeschlossen",
|
|
contact_clicked: "Kontakt angeklickt",
|
|
navigation_clicked: "Navigation geklickt",
|
|
} as const;
|
|
|
|
export type KnownAnalyticsEvent = keyof typeof ANALYTICS_EVENTS;
|
|
|
|
/** Any string works (see the collection comment above) - known ones just get a label. */
|
|
export type AnalyticsEventName = KnownAnalyticsEvent | (string & {});
|
|
|
|
export function analyticsEventLabel(eventName: string): string {
|
|
return (ANALYTICS_EVENTS as Record<string, string>)[eventName] ?? eventName;
|
|
}
|