updating crips settings in a useEffect when we know it's ready

This commit is contained in:
Carter 2025-12-22 15:41:47 -06:00
parent 3952bb7478
commit 193bf0b7a6

View file

@ -68,7 +68,7 @@ export default function UserWrapper(props: Props) {
const user_id = or(useAuth.user?.sub, "")
window.CRISP_RUNTIME_CONFIG = { session_merge: true };
const crispInitialized = useRef(false);
Crisp.configure(import.meta.env.VITE_CRISP_WEBSITE_ID);
const loadUser = useCallback(() => {
@ -104,20 +104,26 @@ export default function UserWrapper(props: Props) {
.finally(() => {
setLoading(false)
hasFetched.current = true;
if (global?.user && global?.user.settings.email) { // Assuming you have user object from your auth/settings
Crisp.user.setEmail(global?.user.settings.email);
// Optional: Set nickname or other info
Crisp.user.setNickname(global?.user.settings.name || "User");
Crisp.user.setPhone(global?.user.settings.phoneNumber);
// For extra security (marks email as verified, prevents spoofing):
// Crisp.user.setEmail(user.email, "your-hmac-signature-here"); // See Crisp docs for signing
// Optional: For session continuity across devices/browsers
Crisp.setTokenId(global?.user.id()); // e.g., your DB user ID
}
})
}, [setGlobal])
useEffect(() => {
if (!crispInitialized.current && global?.user) {
Crisp.configure(import.meta.env.VITE_CRISP_WEBSITE_ID);
crispInitialized.current = true;
Crisp.session.reset();
Crisp.user.setEmail(global?.user.settings.email);
// Optional: Set nickname or other info
Crisp.user.setNickname(global?.user.settings.name || global?.user.settings.email);
Crisp.user.setPhone(global?.user.settings.phoneNumber);
// For extra security (marks email as verified, prevents spoofing):
// Crisp.user.setEmail(user.email, "your-hmac-signature-here"); // See Crisp docs for signing
// Optional: For session continuity across devices/browsers
Crisp.setTokenId(global?.user.id()); // e.g., your DB user ID
}
}, [global]);
useEffect(() => {
if (loading) return;