import React, { useEffect, useState } from "react"; import { motion } from "framer-motion"; import { Users, Check, X, Mail } from "lucide-react"; import { organizationService, type JoinRequest, } from "../services/organizationService"; import { useAuth } from "../contexts/AuthContext"; import { UserAvatar } from "../components/UserAvatar"; export const OrganizationAdminPage: React.FC = () => { const { activeOrg } = useAuth(); const [requests, setRequests] = useState([]); const [isLoading, setIsLoading] = useState(true); const orgToManage = activeOrg!; useEffect(() => { if (orgToManage) { loadRequests(); } }, [orgToManage]); const loadRequests = async () => { if (!orgToManage) return; try { const data = await organizationService.listPendingRequests( orgToManage.id, ); setRequests(data); } catch (error) { console.error("Failed to load requests", error); } finally { setIsLoading(false); } }; const handleAction = async (userId: number, approved: boolean) => { if (!orgToManage) return; try { if (approved) { await organizationService.approveRequest(orgToManage.id, userId); } else { await organizationService.rejectRequest(orgToManage.id, userId); } setRequests((prev) => prev.filter((r) => r.userId !== userId)); } catch (error) { console.error("Action failed", error); alert("Erro ao processar solicitação."); } }; return (

Gestão da {orgToManage.name}

Gerencie membros e solicitações de entrada

Solicitações Pendentes

{requests.length} novos
{isLoading ? (
) : requests.length === 0 ? (
Nenhuma solicitação pendente no momento.
) : ( requests.map((request) => (

{request.name}

{request.email}
)) )}
); };