Improved the way the PayPal integration works

This commit is contained in:
Tiago Ribeiro
2023-11-26 23:16:26 +00:00
parent 0fe2e0d393
commit 9de39485de
4 changed files with 46 additions and 55 deletions

View File

@@ -1,25 +1,23 @@
/* eslint-disable @next/next/no-img-element */
import Layout from "@/components/High/Layout";
import PayPalPayment from "@/components/PayPalPayment";
import ProfileSummary from "@/components/ProfileSummary";
import useGroups from "@/hooks/useGroups";
import usePackages from "@/hooks/usePackages";
import useStats from "@/hooks/useStats";
import useUsers from "@/hooks/useUsers";
import {Package} from "@/interfaces/paypal";
import {User} from "@/interfaces/user";
import {averageScore, groupBySession} from "@/utils/stats";
import clsx from "clsx";
import {capitalize} from "lodash";
import Head from "next/head";
import {useState} from "react";
import {BsFileEarmarkText, BsPencil, BsStar} from "react-icons/bs";
import getSymbolFromCurrency from "currency-symbol-map";
import {Divider} from "primereact/divider";
import Input from "@/components/Low/Input";
import Button from "@/components/Low/Button";
export default function PaymentDue({user, hasExpired, reload}: {user: User; hasExpired?: boolean; reload: () => void}) {
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 {packages} = usePackages();
@@ -74,9 +72,11 @@ export default function PaymentDue({user, hasExpired, reload}: {user: User; hasE
{getSymbolFromCurrency(p.currency)}
</span>
<PayPalPayment
key={clientID}
{...p}
clientID={clientID}
setIsLoading={setIsLoading}
onSuccess={(duration, duration_unit) => {
onSuccess={() => {
setTimeout(reload, 500);
}}
/>
@@ -110,12 +110,14 @@ export default function PaymentDue({user, hasExpired, reload}: {user: User; hasE
{getSymbolFromCurrency(user.corporateInformation.payment.currency)}
</span>
<PayPalPayment
key={clientID}
clientID={clientID}
setIsLoading={setIsLoading}
currency={user.corporateInformation.payment.currency}
price={user.corporateInformation.payment.value}
duration={user.corporateInformation.monthlyDuration}
duration_unit="months"
onSuccess={(duration, duration_unit) => {
onSuccess={() => {
setIsLoading(false);
setTimeout(reload, 500);
}}