39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
"use client";
|
|
|
|
import type { ReactNode } from "react";
|
|
import { trackWhatsAppOpen } from "@/lib/analytics";
|
|
import { buildWhatsAppUrl } from "@/lib/whatsapp";
|
|
|
|
interface WhatsAppLinkProps {
|
|
children: ReactNode;
|
|
className?: string;
|
|
service: string;
|
|
placement: string;
|
|
}
|
|
|
|
export default function WhatsAppLink({
|
|
children,
|
|
className = "",
|
|
service,
|
|
placement,
|
|
}: WhatsAppLinkProps) {
|
|
return (
|
|
<a
|
|
href={buildWhatsAppUrl(
|
|
`Olá, Evandro! Quero conversar sobre ${service}. Contato iniciado pelo site evandro.dev.br.`,
|
|
)}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
className={`${className} focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--slash)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--ink)]`}
|
|
onClick={(event) => {
|
|
if (event.button === 0) trackWhatsAppOpen({ service, placement });
|
|
}}
|
|
onAuxClick={(event) => {
|
|
if (event.button === 1) trackWhatsAppOpen({ service, placement });
|
|
}}
|
|
>
|
|
{children}
|
|
</a>
|
|
);
|
|
}
|