import React, { useContext, useState } from 'react'; import './styles.sass'; import Input from '@/common/components/Input'; import Button from '@/common/components/Button'; import { UserContext } from '@/common/contexts/UserContext.jsx'; import { request } from '@/common/utils/RequestUtil.js'; import { LockIcon, UserIcon } from '@phosphor-icons/react'; export const Login = () => { const { updateSessionToken, isSetupCompleted } = useContext(UserContext); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [mode, setMode] = useState(isSetupCompleted ? 'login' : 'setup'); React.useEffect(()=>{ setMode(isSetupCompleted ? 'login' : 'setup'); }, [isSetupCompleted]); const submit = async (e) => { e.preventDefault(); setError(null); setLoading(true); try { if (mode === 'login') { const data = await request('/auth/login','POST',{username, password}); updateSessionToken(data.token); } else { // setup await request('/setup/init','POST',{username, password}); const data = await request('/auth/login','POST',{username, password}); updateSessionToken(data.token); } } catch (err) { setError(err.error || err.message || 'Error'); } finally { setLoading(false); } }; return (