import React from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import { useQuery } from '@tanstack/react-query';
import { ArrowRightIcon } from '@heroicons/react/24/outline';
import { api } from '../lib/api';
import type { ApiResponse } from '../lib/api';
import type { User } from '../types';
import { formatDate, formatDateTime } from '../lib/utils';
import PageHeader from '../components/ui/PageHeader';
import { ActiveBadge } from '../components/ui/StatusBadge';
function InfoRow({ label, value }: { label: string; value: React.ReactNode }) {
return (
{label}
{value ?? '—'}
);
}
export default function UserDetailPage() {
const { uuid } = useParams<{ uuid: string }>();
const navigate = useNavigate();
const { data, isLoading } = useQuery({
queryKey: ['user', uuid],
queryFn: () => api.get>(`/api/v1/user-profile/${uuid}`),
enabled: !!uuid,
});
const user = data?.data;
return (
navigate('/admin/users')}
className="flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400 hover:text-slate-800 dark:hover:text-slate-100 transition-colors"
>
بازگشت
}
/>
{isLoading ? (
{Array.from({ length: 6 }).map((_, i) => (
))}
) : user ? (
اطلاعات پایه
{user.uuid}} />
{user.mobile_number}} />
} />
نقشها و دسترسیها
{user.roles.map((role) => (
{role}
))}
) : (
کاربری یافت نشد
)}
);
}