Spaces:
Running
Running
File size: 1,203 Bytes
fb12607 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | "use client";
import { useEffect, useState } from "react";
import { usePathname } from "next/navigation";
import formbricks from "@formbricks/js";
import { authClient } from "@/lib/auth-client";
export default function FormbricksProvider() {
const pathname = usePathname();
const { data: session } = authClient.useSession();
// useSearchParams() throws during static prerendering without a Suspense boundary.
// We only need it client-side for registerRouteChange, so initialize lazily.
const [searchParams] = useState<URLSearchParams>(() => {
if (typeof window !== "undefined") {
return new URLSearchParams(window.location.search);
}
return new URLSearchParams();
});
useEffect(() => {
formbricks.setup({
environmentId: process.env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID || "dev",
appUrl: process.env.NEXT_PUBLIC_FORMBRICKS_APP_URL || process.env.NEXT_PUBLIC_APP_URL || "http://localhost:3000",
});
}, []);
useEffect(() => {
if (session?.user?.id) {
formbricks.setUserId(session.user.id);
}
}, [session?.user?.id]);
useEffect(() => {
formbricks?.registerRouteChange();
}, [pathname, searchParams]);
return null;
}
|