| declare global { | |
| interface Window { | |
| gtag: any; | |
| fireEvent: (props: { | |
| action: string; | |
| category: string; | |
| label?: string; | |
| value?: string; | |
| }) => void; | |
| } | |
| } | |
| /** | |
| * Tracks the event on google analytics | |
| * @see https://developers.google.com/analytics/devguides/collection/gtagjs/events | |
| * @param props Event properties | |
| * @returns void | |
| */ | |
| window.fireEvent = (props) => { | |
| const { action, category, label, value } = props; | |
| if (!window.gtag) { | |
| console.warn('Missing GTAG - Analytics disabled'); | |
| return; | |
| } | |
| if (import.meta.env.DEV) { | |
| console.log('Analytics event fired', props); | |
| } | |
| window.gtag('event', action, { | |
| event_category: category, | |
| event_label: label, | |
| value: value, | |
| }); | |
| }; | |