// screens-auth.jsx — Landing page + login/register function LandingScreen({ ctx, onEnter }) { const [mode, setMode] = React.useState('landing'); // landing | login | register const heroAsset = '/revamp/landing/hero.jpg'; const textureAsset = '/revamp/landing/texture.jpg'; const uiAsset = '/revamp/landing/ui-mockup.jpg'; if (mode !== 'landing') { return (
{mode === 'login' && setMode('landing')} onEnter={onEnter} onSwitch={() => setMode('register')} />} {mode === 'register' && setMode('landing')} onEnter={onEnter} onSwitch={() => setMode('login')} />}
); } return (
KI scannt rund um die Uhr

Finden, bevor andere suchen.

ImmoBot überwacht ImmoScout24 und Kleinanzeigen, bewertet Angebote per KI und zeigt sofort, welche Immobilie sich wirklich lohnt.

ImmoBot KI Immobilien Suche
Was die App für Sie übernimmt

Von der Suche bis zur Entscheidung.

ImmoBot App Vorschau

Keine Bindung · DSGVO-konform · jederzeit kündbar

); } function LandingLogo({ light = false }) { return (
I
ImmoBot
); } function LandingMetric({ value, label, tone }) { return (
{value}
{label}
); } function LandingFeature({ icon, title, text }) { return (
{icon}
{title}
{text}
); } function LoginForm({ ctx, onBack, onEnter, onSwitch }) { const [email, setEmail] = React.useState(''); const [pw, setPw] = React.useState(''); const [loading, setLoading] = React.useState(false); const [localError, setLocalError] = React.useState(null); const submit = async () => { setLoading(true); setLocalError(null); try { await ctx.signIn(email, pw); onEnter(); } catch (error) { setLocalError(error.payload?.message || error.message || 'Anmeldung fehlgeschlagen.'); } finally { setLoading(false); } }; return (

Willkommen zurück

Melden Sie sich an, um Ihre Suchen weiterzuführen.

setEmail(e.target.value)} placeholder="E-Mail" style={authInputStyle} /> setPw(e.target.value)} placeholder="Passwort" type="password" style={authInputStyle} />
{localError && (
{localError}
)}
); } function RegisterForm({ ctx, onBack, onEnter, onSwitch }) { const [name, setName] = React.useState(''); const [email, setEmail] = React.useState(''); const [pw, setPw] = React.useState(''); const [loading, setLoading] = React.useState(false); const [localError, setLocalError] = React.useState(null); const submit = async () => { setLoading(true); setLocalError(null); try { await ctx.register(name, email, pw); onEnter(); } catch (error) { setLocalError(error.payload?.message || error.message || 'Registrierung fehlgeschlagen.'); } finally { setLoading(false); } }; return (

Konto erstellen

14 Tage gratis. Jederzeit kündbar.

setName(e.target.value)} style={authInputStyle} /> setEmail(e.target.value)} style={authInputStyle} /> setPw(e.target.value)} style={authInputStyle} />
{localError && (
{localError}
)}

Mit der Registrierung akzeptiere ich die AGB und
Datenschutzbestimmungen.

); } const authInputStyle = { background: 'rgba(255,255,255,.10)', border: '1px solid rgba(255,255,255,.16)', color: '#fff', padding: '14px 16px', fontSize: 15, borderRadius: 12, fontFamily: 'var(--font-sans)', outline: 'none', }; Object.assign(window, { LandingScreen });