React et autres frameworks
Le hook
"use client";
import { useSarutobi } from "@sarutobi/react";
export function ContactButton() {
const { capture } = useSarutobi();
return (
<button onClick={() => capture("contact_started", { placement: "header" })}>
Nous contacter
</button>
);
}useSarutobi() renvoie { capture, track, identify, reset, setConsent, pageview, setContext, flush }.
Hors composant
Depuis un store, un gestionnaire d'événement ou n'importe quel module, importez l'objet directement. Il est aussi réexporté par @sarutobi/react.
import { sarutobi } from "@sarutobi/js";
sarutobi.capture("contact_started", { placement: "footer" });Vue, Svelte, vanilla
@sarutobi/js n'a aucune dépendance et ne suppose aucun framework. Appelez initune fois, au démarrage de l'application.
import { sarutobi } from "@sarutobi/js";
sarutobi.init({ projectToken: "st_live_8f3a1c9d2e4b6071" });Applications à page unique
Rien à faire. history.pushState et replaceState sont enveloppés, popstate est écouté, et chaque changement de chemin déclenche un pageleavede l'ancienne page puis un pageview de la nouvelle.
Rendu côté serveur
Tous les accès à window, document et navigator sont gardés. Importer le package dans un Server Component ou un script Node ne casse rien et ne fait rien.
