import { useQuery } from "@tanstack/react-query"; import { User, Shield, Briefcase, Mail, Fingerprint, Building2, } from "lucide-react"; import { useState } from "react"; import { useAuth } from "react-oidc-context"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "../../components/ui/card"; import { fetchMe } from "../auth/authApi"; import { t } from "../../lib/i18n"; function ProfilePage() { const auth = useAuth(); const hasAccessToken = Boolean(auth.user?.access_token); const { data: profile, isLoading, error, } = useQuery({ queryKey: ["userMe"], queryFn: fetchMe, enabled: hasAccessToken, }); const [activeTab, setActiveTab] = useState<"basic" | "role">("basic"); if (isLoading) { return (
{t("ui.dev.profile.loading", "Loading profile...")}
); } if (error || !profile) { return (
{t("ui.dev.profile.error", "Failed to load profile information.")}
); } // Fallback to token information if API data is incomplete const displayTenant = profile.tenant?.name || profile.tenantId || auth.user?.profile?.tenant_id?.toString() || "-"; const displayCompanyCode = profile.companyCode || auth.user?.profile?.companyCode?.toString() || "-"; return (

{t("ui.dev.profile.title", "내 정보")}

{t( "ui.dev.profile.subtitle", "사용자 상세 정보 및 할당된 역할(Role)을 확인합니다.", )}

{activeTab === "basic" && (
{t("ui.dev.profile.basic.title", "사용자 정보")}

{t("ui.dev.profile.basic.id", "User ID")}

{profile.id}

{t("ui.dev.profile.basic.name", "Name")}

{profile.name}

{t("ui.dev.profile.basic.email", "Email")}

{profile.email}

{t("ui.dev.profile.basic.phone", "Phone")}

{profile.phone || "-"}

{t("ui.dev.profile.org.title", "조직 정보")}

{t("ui.dev.profile.org.tenant", "테넌트")}

{displayTenant}

{t("ui.dev.profile.org.company_code", "회사 코드")}

{displayCompanyCode}

)} {activeTab === "role" && ( {t("ui.dev.profile.role.title", "시스템 역할")} {t( "ui.dev.profile.role.description", "현재 계정에 부여된 권한 등급입니다.", )}

{t("ui.dev.profile.role.current", "Current Role")}

{t( `ui.common.role.${profile.role}`, profile.role.toUpperCase(), )}

{t( `ui.dev.profile.role.desc_${profile.role}`, "시스템 역할에 대한 설명이 제공되지 않았습니다.", )}

)}
); } export default ProfilePage;