import { useState } from "react"; import { View, Text, Pressable } from "react-native"; import { Link, router } from "expo-router"; import BaseBackground from "../components/BaseBackground"; import AuthButton from "../components/AuthButton"; import CustomTextInput from "../components/CustomTextInput"; import { AuthService } from "../services"; import { CaldavConfigService } from "../services/CaldavConfigService"; import { preloadAppData } from "../components/AuthGuard"; import { useThemeStore } from "../stores/ThemeStore"; const LoginScreen = () => { const { theme } = useThemeStore(); const [identifier, setIdentifier] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(null); const [isLoading, setIsLoading] = useState(false); const handleLogin = async () => { setError(null); if (!identifier || !password) { setError("Bitte alle Felder ausfüllen"); return; } setIsLoading(true); try { await AuthService.login({ identifier, password }); await preloadAppData(); try { await CaldavConfigService.sync(); } catch { // No CalDAV config or sync failed — not critical } router.replace("/(tabs)/chat"); } catch { setError("Anmeldung fehlgeschlagen. Überprüfe deine Zugangsdaten."); } finally { setIsLoading(false); } }; return ( Anmelden {error && ( {error} )} Noch kein Konto? Registrieren ); }; export default LoginScreen;