import React, { useEffect, useState } from "react"; import { motion } from "framer-motion"; import { Clock, CheckCircle2, XCircle, Building2, ArrowLeft } from "lucide-react"; import { useNavigate } from "react-router-dom"; import { organizationService, type UserJoinRequest } from "../services/organizationService"; const StatusBadge: React.FC<{ status: UserJoinRequest["status"] }> = ({ status }) => { const configs = { PENDING: { label: "Pendente", icon: Clock, className: "bg-amber-500/10 text-amber-500 border-amber-500/20", }, ACTIVE: { label: "Aprovado", icon: CheckCircle2, className: "bg-emerald-500/10 text-emerald-500 border-emerald-500/20", }, REJECTED: { label: "Recusado", icon: XCircle, className: "bg-rose-500/10 text-rose-500 border-rose-500/20", }, }; const config = configs[status]; const Icon = config.icon; return (
{config.label}
); }; export const MyRequestsPage: React.FC = () => { const [requests, setRequests] = useState([]); const [isLoading, setIsLoading] = useState(true); const navigate = useNavigate(); useEffect(() => { const fetchRequests = async () => { try { const data = await organizationService.getUserRequests(); setRequests(data); } catch (error) { console.error("Failed to fetch requests", error); } finally { setIsLoading(false); } }; fetchRequests(); }, []); return (
{/* Background Orbs */}

Minhas Solicitações

Acompanhe o status dos seus pedidos para entrar em organizações

{isLoading ? (
{[1, 2, 3].map((i) => (
))}
) : requests.length === 0 ? (

Nenhuma solicitação encontrada

Você ainda não solicitou participar de nenhuma organização.

) : (
{requests.map((request, index) => (

{request.organizationName}

ID: {request.organizationId}
))}
)}
); };