diff --git a/public/images/no-images.jpg b/public/images/no-images.jpg new file mode 100644 index 0000000..f0e4bc8 Binary files /dev/null and b/public/images/no-images.jpg differ diff --git a/src/app/(admin)/(others-pages)/profile/page.tsx b/src/app/(admin)/(others-pages)/profile/page.tsx index ef43221..aae12bb 100644 --- a/src/app/(admin)/(others-pages)/profile/page.tsx +++ b/src/app/(admin)/(others-pages)/profile/page.tsx @@ -1,14 +1,32 @@ -"use client" +"use client"; import UserAddressCard from "@/components/user-profile/UserAddressCard"; import UserInfoCard from "@/components/user-profile/UserInfoCard"; -import UserMetaCard from "@/components/user-profile/UserMetaCard"; +import UserMetaCard, { UserMetaCardProps } from "@/components/user-profile/UserMetaCard"; +import { apiGetCurrentUser } from "@/service/auth"; import { RootState } from "@/store/store"; +import { useEffect, useState } from "react"; import { useSelector } from "react-redux"; export default function Profile() { - const user = useSelector((state: RootState) => state.user.data); - console.log("Current User:", user); + const [user, setUser] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const fetchUser = async () => { + try { + const result = await apiGetCurrentUser(); + console.log("Current User:", result); + setUser(result); + } catch (err) { + console.error("Lỗi:", err); + } finally { + setLoading(false); + } + }; + fetchUser(); + }, []); + return (
@@ -16,7 +34,7 @@ export default function Profile() { Profile
- +
diff --git a/src/app/testing/page.tsx b/src/app/testing/page.tsx index 95daeaf..6b6d555 100644 --- a/src/app/testing/page.tsx +++ b/src/app/testing/page.tsx @@ -1,11 +1,37 @@ -import { API } from "../../../api"; +'use client'; // Bắt buộc phải có dòng này -export default async function GetUser() { - let data = await fetch(API.User.CURRENT, { - credentials: "include", - }); +import { useState, useEffect } from 'react'; +import { apiGetCurrentUser } from "@/service/auth"; - let result = await data.json(); - console.log("Current User from GetUser component:", result); - return
GetUser
; -} +export default function GetUser() { + const [user, setUser] = useState(null); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + const fetchUser = async () => { + try { + setLoading(true); + const result = await apiGetCurrentUser(); + console.log("Current User from useEffect:", result); + setUser(result); + } catch (err) { + console.error("Lỗi 401 hoặc lỗi kết nối:", err); + // setError(err); + } finally { + setLoading(false); + } + }; + + fetchUser(); + }, []); // Dependency array rỗng để chỉ chạy 1 lần khi mount + + if (loading) return
Đang tải thông tin...
; + if (error) return
Bạn chưa đăng nhập (Lỗi 401)
; + + return ( +
+

Thông tin người dùng hiện tại:

+
+ ); +} \ No newline at end of file diff --git a/src/components/user-profile/UserMetaCard.tsx b/src/components/user-profile/UserMetaCard.tsx index 4623c44..5103533 100644 --- a/src/components/user-profile/UserMetaCard.tsx +++ b/src/components/user-profile/UserMetaCard.tsx @@ -6,15 +6,39 @@ import Button from "../ui/button/Button"; import Input from "../form/input/InputField"; import Label from "../form/Label"; import Image from "next/image"; +interface Profile { + avatar_url?: string; + bio?: string; + country_code?: string; + display_name?: string; + full_name?: string; + location?: string; + phone?: string; + website?: string; +} +interface Data { + email?: string; + profile?: Profile; + roles?: Role[]; +} +interface Role { + id?: number; + name?: string; +} +export interface UserMetaCardProps { + message?: string; + status?: boolean; + data?: Data; +} -export default function UserMetaCard() { +export default function UserMetaCard({ data }: { data: UserMetaCardProps }) { const { isOpen, openModal, closeModal } = useModal(); const handleSave = () => { - // Handle save logic here console.log("Saving changes..."); closeModal(); }; + console.log("UserMetaCard data:", data.data?.profile?.display_name); return ( <>
@@ -24,25 +48,25 @@ export default function UserMetaCard() { user

- Musharof Chowdhury + {data.data?.profile?.display_name || "Unknown User"}

- Team Manager + {data.data?.profile?.bio || "No bio available"}

- Arizona, United States + {data.data?.profile?.location || "user location"}

-
+ {/*
@@ -111,9 +135,9 @@ export default function UserMetaCard() { /> -
+
*/}
- + */}