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}
))}
)}
);
};