/** * Компонент страницы входа * @module LoginPage */ import { useNavigate } from '@solidjs/router' import { createSignal, onMount } from 'solid-js' import publyLogo from '../assets/publy.svg?url' import { useAuth } from '../context/auth' import formStyles from '../styles/Form.module.css' import styles from '../styles/Login.module.css' import Button from '../ui/Button' import LanguageSwitcher from '../ui/LanguageSwitcher' /** * Компонент страницы входа */ const LoginPage = () => { console.log('[LoginPage] Initializing...') const [username, setUsername] = createSignal('') const [password, setPassword] = createSignal('') const [error, setError] = createSignal(null) const [loading, setLoading] = createSignal(false) const auth = useAuth() const navigate = useNavigate() onMount(() => { console.log('[LoginPage] Component mounted') // Если пользователь уже авторизован, редиректим на админ-панель if (auth.isAuthenticated()) { console.log('[LoginPage] User already authenticated, redirecting to admin...') navigate('/admin') } }) const handleSubmit = async (e: Event) => { e.preventDefault() setError(null) setLoading(true) try { await auth.login(username(), password()) navigate('/admin') } catch (error) { setError(error instanceof Error ? error.message : 'Ошибка при входе') } finally { setLoading(false) } } return (
Logo

Вход в админ панель

setUsername(e.currentTarget.value)} placeholder="admin@discours.io" required class={`${formStyles.input} ${error() ? formStyles.error : ''}`} disabled={loading()} />
setPassword(e.currentTarget.value)} placeholder="••••••••" required class={`${formStyles.input} ${error() ? formStyles.error : ''}`} disabled={loading()} />
{error() && (
⚠️ {error()}
)}
) } export default LoginPage