1 | import styles from "../../css/AdminPanelCss/admin-style.module.css";
|
---|
2 | import { useEffect, useState } from "react";
|
---|
3 |
|
---|
4 | const ApplicationCard = ({ data, onClick }) => {
|
---|
5 | const [userData, setUserData] = useState({});
|
---|
6 |
|
---|
7 | useEffect(() => {
|
---|
8 | if (!data || !data.userId) {
|
---|
9 | return;
|
---|
10 | }
|
---|
11 |
|
---|
12 | const url = "http://localhost:8080/api";
|
---|
13 | const { userId } = data;
|
---|
14 | const token = localStorage.getItem("token");
|
---|
15 |
|
---|
16 | const fetchUserData = async () => {
|
---|
17 | try {
|
---|
18 | const response = await fetch(`${url}/users/${userId}`, {
|
---|
19 | method: "GET",
|
---|
20 | headers: {
|
---|
21 | "Content-Type": "application/json",
|
---|
22 | Authorization: `Bearer ${token}`,
|
---|
23 | },
|
---|
24 | });
|
---|
25 |
|
---|
26 | if (response.ok) {
|
---|
27 | const user_data = await response.json();
|
---|
28 | setUserData(user_data);
|
---|
29 | } else {
|
---|
30 | alert(response.status);
|
---|
31 | }
|
---|
32 | } catch (error) {
|
---|
33 | console.error(error);
|
---|
34 | alert("Error communicating with the server.");
|
---|
35 | }
|
---|
36 | };
|
---|
37 |
|
---|
38 | fetchUserData();
|
---|
39 | }, [data]);
|
---|
40 |
|
---|
41 | const handleClick = () => {
|
---|
42 | onClick({ ...data, userData });
|
---|
43 | };
|
---|
44 |
|
---|
45 | return (
|
---|
46 | <div className={styles.card} onClick={handleClick}>
|
---|
47 | <div className={styles.cardContent}>
|
---|
48 | <h3 className={styles.cardTitle}>
|
---|
49 | {userData.userName} {userData.userSurname}
|
---|
50 | </h3>
|
---|
51 | <p><strong>Email:</strong> {userData.email}</p>
|
---|
52 | <p><strong>Phone Number:</strong> {userData.phoneNumber}</p>
|
---|
53 | </div>
|
---|
54 | </div>
|
---|
55 | );
|
---|
56 | };
|
---|
57 |
|
---|
58 | export default ApplicationCard;
|
---|