import React, { useState } from 'react'; import { useLanguage } from '../contexts/LanguageContext'; interface LoginProps { onLogin: (name: string, role: string, allowedMuseums: string, allowedChannels: string) => void; } function Login({ onLogin }: LoginProps) { const { t } = useLanguage(); const [pin, setPin] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); setLoading(true); try { const res = await fetch('/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, credentials: 'include', body: JSON.stringify({ pin }), }); if (!res.ok) { setError(t('login.invalid')); setLoading(false); return; } const data = await res.json(); onLogin(data.name || '', data.role || 'viewer', data.allowedMuseums ?? '[]', data.allowedChannels ?? '[]'); } catch { setError(t('login.error')); setLoading(false); } }; return (

HiHala Data

{t('login.subtitle')}

setPin(e.target.value)} placeholder={t('login.placeholder')} autoFocus disabled={loading} /> {error &&

{error}

}
); } export default Login;