Fix AdminContact loading state

This commit is contained in:
gpt-engineer-app[bot]
2025-10-28 18:17:10 +00:00
parent b3bb55ecd9
commit 1c7ca8fe32

View File

@@ -87,7 +87,7 @@ interface EmailThread {
export default function AdminContact() { export default function AdminContact() {
const queryClient = useQueryClient(); const queryClient = useQueryClient();
const { theme } = useTheme(); const { theme } = useTheme();
const { isAdmin } = useUserRole(); const { isAdmin, loading: rolesLoading } = useUserRole();
const [statusFilter, setStatusFilter] = useState<string>('all'); const [statusFilter, setStatusFilter] = useState<string>('all');
const [categoryFilter, setCategoryFilter] = useState<string>('all'); const [categoryFilter, setCategoryFilter] = useState<string>('all');
const [searchQuery, setSearchQuery] = useState(''); const [searchQuery, setSearchQuery] = useState('');
@@ -259,7 +259,16 @@ export default function AdminContact() {
return cat?.label || category; return cat?.label || category;
}; };
// Admin-only access check (after all hooks) // Show loading state while roles are being fetched
if (rolesLoading) {
return (
<div className="flex items-center justify-center min-h-screen">
<p className="text-muted-foreground">Loading...</p>
</div>
);
}
// Admin-only access check (after loading complete)
if (!isAdmin()) { if (!isAdmin()) {
return ( return (
<div className="flex items-center justify-center min-h-screen"> <div className="flex items-center justify-center min-h-screen">