Files
website/components/util-tracked-button.tsx
Steffen Illium 4255c61fab
All checks were successful
Next.js App CI / docker (push) Successful in 7m21s
Better Tracking
2025-09-16 11:45:04 +02:00

38 lines
682 B
TypeScript

// file: components/util-tracked-button.tsx
"use client";
import { Button } from "@/components/ui/button";
import React from "react";
interface TrackedButtonProps extends React.ComponentProps<typeof Button> {
eventName: string;
}
export const TrackedButton = ({
eventName,
onClick,
children,
...rest
}: TrackedButtonProps) => {
const handleTrackedClick = (
e: React.MouseEvent<HTMLButtonElement, MouseEvent>
) => {
e.stopPropagation();
if (window.umami) {
window.umami.track(eventName);
}
if (onClick) {
onClick(e);
}
};
return (
<Button onClick={handleTrackedClick} {...rest}>
{children}
</Button>
);
};