import { useTranslation } from 'react-i18next'; import React, { useState } from 'react'; import { Box, Button, Checkbox, Container, FormControlLabel, TextField, Typography, Link, AppBar, Toolbar, Card, CardContent, Alert, Tabs, Tab, InputAdornment, IconButton, } from '@mui/material'; import Visibility from '@mui/icons-material/Visibility'; import VisibilityOff from '@mui/icons-material/VisibilityOff'; import LanguageSwitcher from '../../components/LanguageSwitcher'; import { useLoginPage } from '../../hooks/login-hooks'; const Login = () => { const { t } = useTranslation(); const [showLoginPassword, setShowLoginPassword] = useState(false); const [showRegisterPassword, setShowRegisterPassword] = useState(false); const [showConfirmPassword, setShowConfirmPassword] = useState(false); const { // 表单状态 tabValue, setTabValue, error, loginForm, registerForm, // 表单操作 handleTabChange, // 提交处理 handleLogin, handleRegister, isSubmitting, // 验证规则 loginValidation, registerValidation } = useLoginPage(); return ( {/* 顶部栏使用主题主色 */} T {/* 主体卡片 */} TERES AI {/* 标签页 */} {error && ( {error} )} {/* 登录表单 */} {tabValue === 0 && ( {t('login.loginDescription')} setShowLoginPassword((v) => !v)} onMouseDown={(e) => e.preventDefault()} edge="end" > {showLoginPassword ? : } ), }} /> } label={t('login.rememberMe')} /> )} {/* 注册表单 */} {tabValue === 1 && ( {t('login.registerDescription')} setShowRegisterPassword((v) => !v)} onMouseDown={(e) => e.preventDefault()} edge="end" > {showRegisterPassword ? : } ), }} /> setShowConfirmPassword((v) => !v)} onMouseDown={(e) => e.preventDefault()} edge="end" > {showConfirmPassword ? : } ), }} /> )} {tabValue === 0 ? ( <> {t('login.signInTip')} setTabValue(1)}>{t('login.signUp')}. ) : ( <> {t('login.signUpTip')} setTabValue(0)}>{t('login.login')}. )} {/* 页脚 */} © Deutsche Telekom AG Imprint Data privacy ); }; export default Login;