All files / web/src/components home-redirect.tsx

0% Statements 0/16
100% Branches 1/1
100% Functions 1/1
0% Lines 0/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                                                                         
'use client';
 
import { usePermissiveNavigate } from '@web/hooks/use-permissive-navigate';
import { useSettingsValidation } from '@web/hooks/use-settings-validation';
import type { ReactElement } from 'react';
import { useEffect } from 'react';
 
interface HomeRedirectProps {
  /** Children to render while checking redirect or if no redirect needed */
  children: ReactElement;
}
 
/**
 * Component that handles automatic redirection from the home page.
 * - Redirects to /settings when settings are not complete
 * - Redirects to /agents when settings are complete
 */
export function HomeRedirect({ children }: HomeRedirectProps): ReactElement {
  const navigate = usePermissiveNavigate();
  const { isComplete, isLoading } = useSettingsValidation();
 
  useEffect(() => {
    // Wait for validation to complete
    if (isLoading) return;
 
    if (isComplete) {
      // Settings are complete, redirect to agents
      navigate({ to: '/agents', replace: true });
    } else {
      // Settings are incomplete, redirect to settings
      navigate({ to: '/settings', replace: true });
    }
  }, [isLoading, isComplete, navigate]);
 
  return children;
}