diff --git a/frontend/src/pages/Profile.tsx b/frontend/src/pages/Profile.tsx index 7b42f75..2534ceb 100644 --- a/frontend/src/pages/Profile.tsx +++ b/frontend/src/pages/Profile.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; -import { getUser, deleteUser } from "../api/user"; +import { getUser, updateUser } from "../api/user"; import Cookies from "js-cookie"; interface User { @@ -17,59 +17,115 @@ const Profile = () => { navigate("/login") } const [user, setUser] = useState(null); + const [editMode, setEditMode] = useState(false); + const [formData, setFormData] = useState({ username: "", email: "" }); useEffect(() => { const fetchUser = async () => { try { - const userData = await getUser(Number(id)); - setUser(userData); - } catch (error) { - console.error("Błąd podczas pobierania danych użytkownika:", error); + const data = await getUser(Number(id)); + setUser(data); + setFormData({ username: data.username, email: data.email }); + } catch (err) { + console.error("Błąd podczas pobierania danych użytkownika:", err); + navigate("/tasks"); } }; fetchUser(); }, [id]); - const handleDeleteAccount = async () => { - if (!window.confirm("Na pewno chcesz usunąć konto? Tej operacji nie da się cofnąć.")) return; - + const handleUpdate = async () => { try { - await deleteUser(Number(id)); - Cookies.remove("user_id"); - navigate("/login"); - } catch (error) { - console.error("Błąd podczas usuwania konta:", error); + const updated = await updateUser(Number(id), formData); + setUser(updated); + setEditMode(false); + } catch (err) { + console.error("Błąd podczas aktualizacji użytkownika:", err); } }; - if (!user) return
Ładowanie danych użytkownika...
; + if (!user) return

Ładowanie...

; return ( -
-

Twój profil

+
+

👤 Twój profil

-
-

Nazwa użytkownika: {user.username}

-

Email: {user.email}

-

Rola: {user.role}

+
+ + {editMode ? ( + setFormData({ ...formData, username: e.target.value })} + className="border p-2 rounded w-full" + /> + ) : ( +

{user.username}

+ )}
-
- - - +
+ + {editMode ? ( + setFormData({ ...formData, email: e.target.value })} + className="border p-2 rounded w-full" + /> + ) : ( +

{user.email}

+ )}
+ +
+ +

{user.role}

+
+ + {editMode ? ( +
+ + +
+ ) : ( + + )} + {!editMode && ( +
+ + +
+ )}
); };