source: frontend/src/routes/user/user-details.jsx@ badbc79

Last change on this file since badbc79 was badbc79, checked in by Luka Cheshlarov <luka.cheshlarov@…>, 20 months ago

Initial commit

  • Property mode set to 100644
File size: 3.8 KB
Line 
1import React, {useState} from "react";
2import {useAuthContext} from "../../configurations/AuthContext";
3import {Button, Grid, Typography} from "@mui/material";
4import {useLoaderData} from "react-router-dom";
5import UserDetailsPhoto from "../../assets/images/userDetailsBasicPhoto.jpg";
6import {UserRole} from "../../services/user-service";
7import CreateUpdateVehicleModal from "../../components/modals/vehicle-modal";
8import UserModal from "../../components/modals/user-modal";
9
10
11const UserDetails = ({id}) => {
12 const {isAuthorized, loggedUserRole} = useAuthContext();
13 const [openVehicleModal, setOpenVehicleModal] = useState(false);
14 const {user, vehicle} = useLoaderData();
15 const [openUpdateModal, setOpenUpdateModal] = useState(false);
16
17 return (user &&
18 <Grid container component={"main"}>
19 <Grid item xs={6} alignItems={"center"} justify={"space-between"}
20 className={"background-image mt-5"}
21 style={{backgroundImage: `url(${UserDetailsPhoto})`}}>
22 </Grid>
23
24 <Grid item xs={6} flexDirection={'column'} alignItems={"center"} justify={"space-between"}
25 className={"mt-5"}>
26 <Grid>
27 <Typography className={"mt-3 mb-2"} variant={"h3"} alignContent={"center"}>
28 <b> User Details</b>
29 </Typography>
30 </Grid>
31
32 <Grid> <Typography className={"mt-3"} variant={"body1"}>
33 <b> Email: </b> {user.email}
34 </Typography>
35 </Grid>
36 <Grid>
37 <Typography className={"mt-3"} variant={"body1"}>
38 <b> Username:</b> {user.username}
39 </Typography>
40 </Grid>
41
42 <Grid>
43 <Typography className={"mt-3"} variant={"body1"}>
44 <b> Role:</b> {user.role}
45 </Typography>
46 </Grid>
47 {loggedUserRole?.role === UserRole.Potrosuvac &&
48 <Grid>
49 <Typography className={"mt-3"} variant={"body1"}>
50 <b> PhoneNumber:</b> {user.phoneNumber}
51 </Typography>
52 <Typography className={"mt-3"} variant={"body1"}>
53 <b> Address:</b> {user.address}
54 </Typography>
55 </Grid>}
56
57 {loggedUserRole?.role === UserRole.Vozac &&
58 <Grid className={"mt-5"}>
59 {vehicle &&
60 <>
61 <Typography variant={"h5"}>Vehicle Info</Typography>
62 <Typography className={"mt-3"} variant={"body1"}>
63 <b> Type:</b> {vehicle.tip}
64 </Typography>
65 <Typography className={"mt-3"} variant={"body1"}>
66 <b> Registration:</b> {vehicle.registracija}
67 </Typography>
68 </>}
69 <hr className={"horizontal-fancy"}/>
70 <Button onClick={() => setOpenVehicleModal(true)}>{vehicle ? "Edit" : "Add"} Vehicle</Button>
71 </Grid>
72 }
73 <Button className={"mt-5"} onClick={() => setOpenUpdateModal(true)}>Update user</Button>
74
75 </Grid>
76
77
78 {openVehicleModal &&
79 <CreateUpdateVehicleModal vehicle={vehicle} open={openVehicleModal}
80 onClose={() => setOpenVehicleModal(false)}/>}
81
82 {openUpdateModal &&
83 <UserModal user={user} open={openUpdateModal}
84 onClose={() => setOpenUpdateModal(false)}/>}
85
86
87 </Grid>
88 )
89}
90
91export default UserDetails;
Note: See TracBrowser for help on using the repository browser.