|
1 | 1 | import { Card, CardContent, CardHeader, Divider } from '@mui/material'; |
2 | 2 | import React, { useMemo } from 'react'; |
| 3 | +import { useTranslation } from 'react-i18next'; |
3 | 4 | import { useParams } from 'react-router-dom'; |
4 | 5 | import UserRoutes from '../../../api/UserRoutes'; |
5 | 6 | import UserForm from '../../../components/forms/UserForm'; |
6 | 7 | import Loader from '../../../components/Loader'; |
7 | 8 | import Page from '../../../components/Page'; |
| 9 | +import { emptyUser } from '../../../hooks/useAuth'; |
8 | 10 | import useStateAsync from '../../../hooks/useStateAsync'; |
9 | 11 |
|
10 | 12 | const UserEditView = () => { |
11 | | - const { id } = useParams(); |
| 13 | + const { t } = useTranslation('user'); |
| 14 | + const { id: _id } = useParams(); |
| 15 | + |
| 16 | + const id = useMemo(() => (_id ? +_id : 0), [_id]); |
12 | 17 |
|
13 | 18 | const callParams = useMemo(() => ({ |
14 | | - id: id ? +id : 0, |
| 19 | + id, |
15 | 20 | include: { person: true }, |
16 | 21 | }), [id]); |
17 | 22 | const { data: user } = useStateAsync( |
18 | | - null, |
| 23 | + emptyUser, |
19 | 24 | UserRoutes.get, |
20 | 25 | callParams, |
21 | 26 | ); |
22 | 27 |
|
23 | 28 | return ( |
24 | | - <Page |
25 | | - title="New user" |
26 | | - > |
| 29 | + <Page title={id ? t('editUser') : t('newUser')}> |
27 | 30 | <Card> |
28 | 31 | <CardHeader |
29 | | - subheader="Edit the user information" |
30 | | - title="Edit user" |
| 32 | + subheader={t('informationCanBeEdited')} |
| 33 | + title={id ? t('editUser') : t('newUser')} |
31 | 34 | /> |
32 | 35 | <Divider /> |
33 | 36 | <CardContent> |
34 | | - {!user |
| 37 | + {(!!id && !user.id) |
35 | 38 | ? <Loader /> |
36 | 39 | : ( |
37 | 40 | <UserForm |
38 | 41 | data={{ |
39 | | - id: id ? +id : 0, |
| 42 | + id: user.id, |
40 | 43 | admin: user.admin, |
41 | 44 | login: user.login, |
42 | 45 | idperson: user.person.id ? +user.person.id : 0, |
|
0 commit comments