- pgSchema "mesh" with 4 tables isolating the peer mesh domain - Enums: visibility, transport, tier, role - audit_log is metadata-only (E2E encryption enforced at broker/client) - Cascade on mesh delete, soft-delete via archivedAt/revokedAt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
595 B
TypeScript
31 lines
595 B
TypeScript
"use client";
|
|
|
|
import { useEffect } from "react";
|
|
|
|
import { identify, Provider, reset } from "@turbostarter/analytics-web";
|
|
|
|
import { authClient } from "~/lib/auth/client";
|
|
|
|
export const AnalyticsProvider = ({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) => {
|
|
const session = authClient.useSession();
|
|
|
|
useEffect(() => {
|
|
if (session.isPending) {
|
|
return;
|
|
}
|
|
|
|
if (session.data?.user) {
|
|
const { id, email, name } = session.data.user;
|
|
identify(id, { email, name });
|
|
} else {
|
|
reset();
|
|
}
|
|
}, [session]);
|
|
|
|
return <Provider>{children}</Provider>;
|
|
};
|