import { Invite } from "@/interfaces/invite"; import { User } from "@/interfaces/user"; import axios from "axios"; import { useState } from "react"; import { BsArrowRepeat } from "react-icons/bs"; import { toast } from "react-toastify"; interface Props { invite: Invite; users: User[]; reload: () => void; } export default function InviteCard({ invite, users, reload }: Props) { const [isLoading, setIsLoading] = useState(false); const inviter = users.find((u) => u.id === invite.from); const name = !inviter ? null : inviter.type === "corporate" ? inviter.corporateInformation?.companyInformation?.name || inviter.name : inviter.name; const decide = (decision: "accept" | "decline") => { if (!confirm(`Are you sure you want to ${decision} this invite?`)) return; setIsLoading(true); axios .get(`/api/invites/${decision}/${invite.id}`) .then(() => { toast.success( `Successfully ${decision === "accept" ? "accepted" : "declined"} the invite!`, { toastId: "success" }, ); reload(); }) .catch((e) => { toast.success(`Something went wrong, please try again later!`, { toastId: "error", }); reload(); }) .finally(() => setIsLoading(false)); }; return (