/* eslint-disable @next/next/no-img-element */ import Layout from "@/components/High/Layout"; import PayPalPayment from "@/components/PayPalPayment"; import useGroups from "@/hooks/useGroups"; import usePackages from "@/hooks/usePackages"; import useUsers from "@/hooks/useUsers"; import { User } from "@/interfaces/user"; import clsx from "clsx"; import { capitalize } from "lodash"; import { useState } from "react"; import getSymbolFromCurrency from "currency-symbol-map"; import useInvites from "@/hooks/useInvites"; import { BsArrowRepeat } from "react-icons/bs"; import InviteCard from "@/components/Medium/InviteCard"; import { useRouter } from "next/router"; interface Props { user: User; hasExpired?: boolean; clientID: string; reload: () => void; } export default function PaymentDue({ user, hasExpired = false, clientID, reload, }: Props) { const [isLoading, setIsLoading] = useState(false); const router = useRouter(); const { packages } = usePackages(); const { users } = useUsers(); const { groups } = useGroups(); const { invites, isLoading: isInvitesLoading, reload: reloadInvites, } = useInvites({ to: user.id }); const isIndividual = () => { if (user?.type === "developer") return true; if (user?.type !== "student") return false; const userGroups = groups.filter((g) => g.participants.includes(user?.id)); if (userGroups.length === 0) return true; const userGroupsAdminTypes = userGroups .map((g) => users?.find((u) => u.id === g.admin)?.type) .filter((t) => !!t); return userGroupsAdminTypes.every((t) => t !== "corporate"); }; return ( <> {isLoading && (
EnCoach - {p.duration}{" "}
{capitalize(
p.duration === 1
? p.duration_unit.slice(
0,
p.duration_unit.length - 1,
)
: p.duration_unit,
)}
EnCoach - {user.corporateInformation?.monthlyDuration}{" "}
Months