/* global React, Icon */ const { useState } = React; function AuthModal({ onClose, onSuccess }) { const [mode, setMode] = useState('login'); // login | signup const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [name, setName] = useState(''); const [phone, setPhone] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [success, setSuccess] = useState(null); const handle = async () => { if (!email || !password) { setError('Email dan password wajib diisi'); return; } if (mode === 'signup' && !name) { setError('Nama lengkap wajib diisi'); return; } setLoading(true); setError(null); try { if (mode === 'login') { await window.IndieAuth.signIn(email, password); onSuccess?.(); onClose?.(); } else { await window.IndieAuth.signUp(email, password, name, phone); setSuccess('Akun berhasil dibuat! Cek email untuk konfirmasi, lalu login.'); setMode('login'); } } catch (e) { setError(e.message); } finally { setLoading(false); } }; return (
e.stopPropagation()}>
「 INDIE PAPER 」

{mode === 'login' ? 'Masuk ke akun' : 'Buat akun baru'}

{mode === 'signup' && ( <>
setName(e.target.value)} placeholder="Nama lengkap" />
setPhone(e.target.value)} placeholder="+62 81..." />
)}
setEmail(e.target.value)} placeholder="hello@studio.com" />
setPassword(e.target.value)} placeholder="••••••••" onKeyDown={e => e.key === 'Enter' && handle()} />
{error && (
{error}
)} {success && (
{success}
)}
{mode === 'login' ? ( <>Belum punya akun? { setMode('signup'); setError(null); }}>Daftar gratis ) : ( <>Sudah punya akun? { setMode('login'); setError(null); }}>Masuk )}
Akun INDIE Paper = akun INDIE Member (member.indiespace.id).
Login di satu tempat, berlaku di keduanya.
); } window.AuthModal = AuthModal;