UNPKG

@frak-labs/core-sdk

Version:

Core SDK of the Frak wallet, low level library to interact directly with the frak ecosystem.

33 lines (29 loc) 1.15 kB
import type { FrakClient } from "../../types"; import { referralInteraction } from "./referralInteraction"; /** * Custom event name dispatched on successful referral processing. * * Fired once per page load when a valid referral context is found in the URL * and successfully tracked. Consumers (e.g. `<frak-banner>`) listen for this * to display a referral success message. */ export const REFERRAL_SUCCESS_EVENT = "frak:referral-success"; /** * Process referral context and emit a DOM event on success. * * - Calls {@link referralInteraction} to detect and track any referral in the URL * - On `"success"`, dispatches a bare {@link REFERRAL_SUCCESS_EVENT} on `window` * - Silently swallows errors (fire-and-forget during SDK init) * * @param client - The initialized Frak client */ export async function setupReferral(client: FrakClient): Promise<void> { try { const state = await referralInteraction(client); if (state === "success") { window.dispatchEvent(new Event(REFERRAL_SUCCESS_EVENT)); } } catch (error) { console.warn("[Frak] Referral setup failed", error); } }