diff --git a/App.tsx b/App.tsx index 28169f5..c636f5c 100644 --- a/App.tsx +++ b/App.tsx @@ -43,6 +43,7 @@ const App: React.FC = () => { const [sessions, setSessions] = useState([]); const [currentSessionId, setCurrentSessionId] = useState(null); const [isLoading, setIsLoading] = useState(false); + const [isLoggingIn, setIsLoggingIn] = useState(false); const [isFaqGenerating, setIsFaqGenerating] = useState(false); const [generatingStatus, setGeneratingStatus] = useState(''); const [isSyncing, setIsSyncing] = useState(false); @@ -95,14 +96,18 @@ const App: React.FC = () => { localStorage.setItem(PERSONA_STORAGE_KEY, JSON.stringify(personas)); }, [personas]); - const handleLogin = (email: string) => { - // If we have users loaded (from NC or Init), check them - const user = users.find(u => u.email.toLowerCase() === email.toLowerCase() && u.status === 'aktiv'); - if (user) { - setCurrentUser(user); - } else { - alert("Zugang verweigert. Nur verifizierte Wohnpro-Bewohner können sich im Wohnpro Guide anmelden."); - } + const handleLogin = (email:string) => { + setIsLoggingIn(true); + // Simulate network delay for UX demo + setTimeout(() => { + const user = users.find(u => u.email.toLowerCase() === email.toLowerCase() && u.status === 'aktiv'); + if (user) { + setCurrentUser(user); + } else { + alert("Zugang verweigert. Nur verifizierte Wohnpro-Bewohner können sich im Wohnpro Guide anmelden."); + } + setIsLoggingIn(false); + }, 1500); }; const sendMessage = async (text: string) => { @@ -256,7 +261,7 @@ const App: React.FC = () => { Synchronisiere mit Nextcloud... )} - + ); } diff --git a/components/LoginView.tsx b/components/LoginView.tsx index a7c3c0b..f51f8c0 100644 --- a/components/LoginView.tsx +++ b/components/LoginView.tsx @@ -5,9 +5,10 @@ import { User } from '../types'; interface LoginViewProps { onLogin: (email: string) => void; error?: string; + isLoading?: boolean; } -const LoginView: React.FC = ({ onLogin, error: externalError }) => { +const LoginView: React.FC = ({ onLogin, error: externalError, isLoading = false }) => { const [email, setEmail] = useState(''); const [error, setError] = useState(externalError || ''); @@ -48,9 +49,16 @@ const LoginView: React.FC = ({ onLogin, error: externalError })