import React, { useState } from 'react'; import { useAuth } from '../context/AuthContext'; import { Sparkles, ArrowRight, Lock, User, Mail, ShieldCheck } from 'lucide-react'; export const LoginView = () => { const { login, register } = useAuth(); const [isLoginTab, setIsLoginTab] = useState(true); const [identifier, setIdentifier] = useState(''); const [password, setPassword] = useState(''); const [username, setUsername] = useState(''); const [loading, setLoading] = useState(false); const [errorMsg, setErrorMsg] = useState(''); const handleSubmit = async (e) => { e.preventDefault(); setErrorMsg(''); setLoading(true); try { if (isLoginTab) { const res = await login(identifier, password); if (!res.success) { setErrorMsg(res.message || '登录失败,请检查账号与密码'); } } else { if (!username.trim()) { setErrorMsg('请输入用户名'); setLoading(false); return; } const res = await register(username, identifier, password); if (!res.success) { setErrorMsg(res.message || '注册失败,请稍后重试'); } } } catch (err) { setErrorMsg('网络请求异常,请稍后重试'); } finally { setLoading(false); } }; return (
{/* Header Branding */}
星痕 App Logo

星痕 CelestiaTrace

云端现场记录极简同步平台

{/* Tab Switcher */}
{/* Error Alert */} {errorMsg && (
{errorMsg}
)} {/* Form */}
{!isLoginTab && (
setUsername(e.target.value)} placeholder="例如: 张工" className="w-full pl-9 pr-4 py-2.5 rounded-xl bg-slate-50 dark:bg-slate-800 border border-black/10 dark:border-white/10 text-slate-900 dark:text-white text-xs focus:outline-none focus:border-slate-800 dark:focus:border-slate-200 transition-colors" />
)}
setIdentifier(e.target.value)} placeholder="user@example.com 或 13800138000" className="w-full pl-9 pr-4 py-2.5 rounded-xl bg-slate-50 dark:bg-slate-800 border border-black/10 dark:border-white/10 text-slate-900 dark:text-white text-xs focus:outline-none focus:border-slate-800 dark:focus:border-slate-200 transition-colors" />
setPassword(e.target.value)} placeholder="输入密码" className="w-full pl-9 pr-4 py-2.5 rounded-xl bg-slate-50 dark:bg-slate-800 border border-black/10 dark:border-white/10 text-slate-900 dark:text-white text-xs focus:outline-none focus:border-slate-800 dark:focus:border-slate-200 transition-colors" />
端到端同步加密与身份认证保驾护航
); };