import { AuthProvider, useAuth } from '@/auth/AuthProvider';
import { LoadingScreen, LoginScreen } from '@/auth/LoginScreen';
import Dashboard from '@/views/Dashboard';

/**
 * Der Auth-Gate.
 *
 * Drei Zustände, mehr gibt es nicht: es ist noch nicht entschieden, niemand ist
 * angemeldet, oder jemand ist angemeldet. Erst im dritten Fall wird überhaupt
 * eine Fachansicht gerendert -- so kann keine Ansicht in einen Zustand ohne
 * Benutzer geraten.
 */
function Gate() {
    const { user, ready } = useAuth();

    if (!ready) return <LoadingScreen />;
    if (!user) return <LoginScreen />;

    return <Dashboard />;
}

export function App() {
    return (
        <AuthProvider>
            <Gate />
        </AuthProvider>
    );
}
