Revize 8c45ccb0
Přidáno uživatelem hrubyjar před asi 2 roky(ů)
webapp/pages/login/index.tsx | ||
---|---|---|
1 |
import 'antd/dist/antd.css'; |
|
1 | 2 |
import { Form, Input, Button } from 'antd'; |
2 | 3 |
import { UserOutlined, LockOutlined } from '@ant-design/icons'; |
3 |
import 'antd/dist/antd.css'; |
|
4 |
import { LoginLayout } from '../../layouts/LoginLayout'; |
|
4 |
import { LoggedUserContext } from '../../contexts/LoggedUserContext'; |
|
5 |
import { LoginLayout } from '../../layouts/loginLayout'; |
|
6 |
import { useContext } from 'react'; |
|
7 |
import { useRouter } from 'next/router'; |
|
8 |
import { ShowToast } from '../../utils/alerts'; |
|
9 |
import { getTokenData } from '../../utils/login'; |
|
10 |
import { LoginResponse } from '../../api'; |
|
5 | 11 |
|
6 | 12 |
/** |
7 | 13 |
* Creates a login screen. |
8 | 14 |
* @returns Html structure of the login screen. |
9 | 15 |
*/ |
10 | 16 |
function Login() { |
17 |
const { login, role } = useContext(LoggedUserContext); |
|
18 |
const router = useRouter(); |
|
11 | 19 |
/** |
12 | 20 |
* Handles submission a form when its fields were successfully validated. |
13 | 21 |
* @param values Fields of the login form. |
14 | 22 |
*/ |
15 |
const onFinish = (values: any) => { |
|
16 |
/** |
|
17 |
@todo: delete login form log when login API is implemented |
|
18 |
**/ |
|
19 |
console.log('Values of the login form: ', values); |
|
23 |
const onFinish = async (values: any) => { |
|
24 |
const loginRes = await login(values.username, values.password); |
|
25 |
|
|
26 |
if (!loginRes) { |
|
27 |
ShowToast( |
|
28 |
'Chybně zadané heslo nebo uživatelské jméno', |
|
29 |
'error', |
|
30 |
3000, |
|
31 |
'top-end' |
|
32 |
); |
|
33 |
} else { |
|
34 |
let data: LoginResponse | null = await getTokenData(); |
|
35 |
ShowToast('Přihlášení proběhlo úspěšně', 'success', 3000, 'top-end'); |
|
36 |
if (data?.role === 'ADMINISTRATOR') { |
|
37 |
await router.push('/documents/admin'); |
|
38 |
} else if (data?.role === 'ANNOTATOR') { |
|
39 |
await router.push('/documents/annotator'); |
|
40 |
} |
|
41 |
} |
|
20 | 42 |
}; |
21 | 43 |
|
22 | 44 |
/** |
... | ... | |
24 | 46 |
* @param errorInfo Validation errors. |
25 | 47 |
*/ |
26 | 48 |
const onFinishFailed = (errorInfo: any) => { |
27 |
/** |
|
28 |
@todo: delete log when error handling is implemented |
|
29 |
**/ |
|
30 |
console.log('Errors: ', errorInfo); |
|
49 |
ShowToast('Zadané údaje nejsou validní', 'error', 3000, 'top-end'); |
|
31 | 50 |
}; |
32 | 51 |
|
33 | 52 |
return ( |
Také k dispozici: Unified diff
Token management implemented, redirections