"use client" import { useCallback, useState } from "react" import { Check, Copy } from "lucide-react" import { toast } from "sonner" import { webhookVariableGroupsForDomains, type WebhookTemplateVariable, } from "@/lib/mail-automation/webhook-template-variables" import { AUTOMATION_DOMAIN_LABELS, type AutomationDomain, } from "@/lib/mail-automation/domains" import { cn } from "@/lib/utils" const DOMAIN_TABS: Array = ["all", "mail", "drive", "contacts"] function VariableChip({ variable, copied, onCopy, }: { variable: WebhookTemplateVariable copied: boolean onCopy: (token: string) => void }) { return ( ) } export function WebhookTemplateVariablesPanel() { const [copiedToken, setCopiedToken] = useState(null) const [filter, setFilter] = useState("all") const groups = filter === "all" ? webhookVariableGroupsForDomains(["mail", "drive", "contacts"]) : webhookVariableGroupsForDomains([filter]) const copyToken = useCallback(async (token: string) => { try { await navigator.clipboard.writeText(token) setCopiedToken(token) toast.success(`${token} copié`) window.setTimeout(() => { setCopiedToken((current) => (current === token ? null : current)) }, 1500) } catch { toast.error("Impossible de copier la variable") } }, []) return (

Variables du template

Variables selon le type d'événement (mail, Drive, contacts). Les variables communes ($event.*, $date) fonctionnent partout.

{DOMAIN_TABS.map((tab) => ( ))}
{groups.map((group) => (

{group.label}

{group.description}

    {group.variables.map((variable) => (
  • {variable.label} — {variable.description} {variable.example ? ( Ex. {variable.example} ) : null}
  • ))}
))}
) }