feat(dashboard): connect patient dashboard to real user profile

- buildPatientUser: ساخت آبجکت user از user-profile واقعی با کلیدهای
  مورد انتظار کامپوننت‌ها؛ comments/messages خالی و اعداد هدر صفر
  (بدون داده ساختگی، چون endpoint ندارند)
- app/dashboard/page.js پروفایل را server-side از user-profile/{uuid} می‌گیرد
- حذف import userData.json mock از Content داشبورد
- نوبت/تراکنش/تب اطلاعات از قبل به API واقعی وصل بودند (بدون تغییر)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
hamed
2026-06-15 00:10:40 +03:30
co-authored by Claude Opus 4.8
parent 5067824f28
commit dc1c6d25be
3 changed files with 42 additions and 4 deletions
+12
View File
@@ -5,6 +5,8 @@ import { getStateInfo } from "@/lib/getStateInfo";
import { removeToken } from "@/utils";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
import { fetchReq } from "@/lib/req";
import { buildPatientUser } from "@/lib/representationAdapters";
export default async function Dashboard({ searchParams }) {
const awaitedSearchParams = await searchParams;
@@ -20,11 +22,21 @@ export default async function Dashboard({ searchParams }) {
return redirect("/login");
}
const uuid = cookieStore.get("uuid")?.value;
let profile = null;
if (uuid) {
profile = await fetchReq(
`${process.env.NEXT_PUBLIC_API_URL}/api/v1/user-profile/${uuid}`,
{ headers: { Authorization: `Bearer ${token.value}` } }
);
}
return (
<Content
logged={token.value}
params={awaitedSearchParams}
matchedCity={matchedCity}
user={buildPatientUser(profile)}
/>
);
}