Sifa professional network frontend (Next.js, React, TailwindCSS)
sifa.id/
1'use client';
2
3import { useEffect, useRef } from 'react';
4import { useRouter } from 'next/navigation';
5import { useAuth } from '@/components/auth-provider';
6import { trackEvent } from '@/lib/analytics';
7import { hasSeenOnboarding } from '@/lib/onboarding';
8
9export function AuthReturnHandler() {
10 const { session, isLoading } = useAuth();
11 const router = useRouter();
12 const tracked = useRef(false);
13
14 useEffect(() => {
15 if (isLoading || !session) return;
16
17 if (!tracked.current) {
18 tracked.current = true;
19 trackEvent('signup');
20 }
21
22 // Honor explicit returnTo first
23 const returnTo = sessionStorage.getItem('auth_returnTo');
24 if (returnTo && returnTo !== '/') {
25 sessionStorage.removeItem('auth_returnTo');
26 router.replace(returnTo);
27 return;
28 }
29 sessionStorage.removeItem('auth_returnTo');
30
31 // Redirect new users to /welcome (unless already seen this session)
32 if (session.isNewUser && !hasSeenOnboarding()) {
33 router.replace('/welcome');
34 }
35 }, [session, isLoading, router]);
36
37 return null;
38}