source: frontend/web3-eDnevnik_Frontend/src/components/stats/Stats.jsx

Last change on this file was 81cdf2d, checked in by Nikola Janev <nikolajanev57@…>, 9 days ago

initial commit

  • Property mode set to 100644
File size: 2.4 KB
RevLine 
[81cdf2d]1import React, { useState, useEffect } from "react";
2import axios from "axios";
3import Navbar from "../../components/nav/Navbar.jsx";
4import styles from "./Stats.module.css";
5
6const Stats = () => {
7 const [userData, setUserData] = useState(null);
8 const [loading, setLoading] = useState(true);
9 const [error, setError] = useState("");
10
11 useEffect(() => {
12 const fetchCurrentUser = async () => {
13 try {
14 const response = await axios.get("http://localhost:8080/api/auth/me", {
15 withCredentials: true,
16 });
17 setUserData(response.data);
18 } catch (err) {
19 setError("Не успеавме да ги вчитаме податоците за корисникот.");
20 console.error("Auth error:", err);
21 } finally {
22 setLoading(false);
23 }
24 };
25
26 fetchCurrentUser();
27 }, []);
28
29 if (loading) return <div className={styles.statsWrapper}>Вчитување...</div>;
30
31 return (
32 <>
33 <Navbar />
34 <div className={styles.statsWrapper}>
35 <div className={styles.statsCard}>
36 <h2 className={styles.statsHeader}>Мој Профил / Статистика</h2>
37
38 {error ? (
39 <p style={{ color: "red" }}>{error}</p>
40 ) : (
41 <>
42 <div className={styles.infoGroup}>
43 <span className={styles.label}>Ид:</span>
44 <span className={styles.value}>{userData?.id}</span>
45 </div>
46
47 <div className={styles.infoGroup}>
48 <span className={styles.label}>Е-пошта:</span>
49 <span className={styles.value}>{userData?.email}</span>
50 </div>
51 <div className={styles.infoGroup}>
52 <span className={styles.label}>Wallet:</span>
53 <span className={styles.value}>{userData?.saved_wallet}</span>
54 </div>
55
56 <div className={styles.infoGroup}>
57 <span className={styles.label}>Вашите улоги во системот:</span>
58 <div>
59 {userData?.roles?.map((role, index) => (
60 <span key={index} className={styles.roleBadge}>
61 {role.authority || role}
62 </span>
63 ))}
64 </div>
65 </div>
66 </>
67 )}
68 </div>
69 </div>
70 </>
71 );
72};
73
74export default Stats;
Note: See TracBrowser for help on using the repository browser.