diff --git a/src/front/Components/Layouts/Subscription/SubscriptionError/index.tsx b/src/front/Components/Layouts/Subscription/SubscriptionError/index.tsx index 22dc4b5c..1c9cab17 100644 --- a/src/front/Components/Layouts/Subscription/SubscriptionError/index.tsx +++ b/src/front/Components/Layouts/Subscription/SubscriptionError/index.tsx @@ -1,41 +1,77 @@ import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate"; import classes from "./classes.module.scss"; -import SubscriptionTicket from "../Components/SubscriptionTicket"; import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography"; import MessageBox from "@Front/Components/Elements/MessageBox"; import SubscriptionClientInfos from "../Components/SubscriptionClientInfos"; import Button from "@Front/Components/DesignSystem/Button"; +import { useCallback, useEffect, useState } from "react"; +import { Subscription } from "le-coffre-resources/dist/Admin"; +import JwtService from "@Front/Services/JwtService/JwtService"; +import Subscriptions from "@Front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions"; +import SubscribeCheckoutTicket, { EPaymentFrequency } from "../Components/SubscribeCheckoutTicket"; +import { EForfeitType } from "../SubscriptionFacturation"; export default function SubscriptionError() { + const [subscription, setSubscription] = useState(null); + + const loadSubscription = useCallback(async () => { + const jwt = JwtService.getInstance().decodeJwt(); + const subscription = await Subscriptions.getInstance().get({ where: { office: { uid: jwt?.office_Id } } }); + console.log(subscription); + if (!subscription[0]) return; + setSubscription(subscription[0]); + }, []); + + const getFrequency = useCallback(() => { + if (!subscription) return; + const start = new Date(subscription.start_date); + const end = new Date(subscription.end_date); + + const diffTime = Math.abs(end.getTime() - start.getTime()); + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + return diffDays >= 365 ? EPaymentFrequency.yearly : EPaymentFrequency.monthly; + }, [subscription]); + + useEffect(() => { + loadSubscription(); + }, [loadSubscription]); + return ( -
-
-
- - Paiement échoué - + {subscription && ( +
+
+
+ + Paiement échoué + +
+
+ + Votre transaction n'a pas pu être complétée. +
+
+ Malheureusement, nous n'avons pas pu traiter votre paiement et votre abonnement n'a pas été activé. Veuillez + vérifier vos informations de paiement et essayer à nouveau. +
+
+
+
+ +
+
+
-
- - Votre transaction n'a pas pu être complétée. -
-
- Malheureusement, nous n'avons pas pu traiter votre paiement et votre abonnement n'a pas été activé. Veuillez - vérifier vos informations de paiement et essayer à nouveau. -
+
+
-
-
- -
-
-
-
- -
-
+ )} ); } diff --git a/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx b/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx index 2e4836a0..eb3fa504 100644 --- a/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx +++ b/src/front/Components/Layouts/Subscription/SubscriptionInvite/index.tsx @@ -9,6 +9,7 @@ import Subscriptions from "@Front/Api/LeCoffreApi/Admin/Subscriptions/Subscripti import { useCallback, useState } from "react"; import { TrashIcon } from "@heroicons/react/24/outline"; import PlusIcon from "@Assets/Icons/plus.svg"; +import Module from "@Front/Config/Module"; type EmailLine = { element: JSX.Element; @@ -51,6 +52,7 @@ export default function SubscriptionInvite() { await Subscriptions.getInstance().post({ emails, }); + router.push(Module.getInstance().get().modules.pages.Subscription.pages.Manage.props.path); } catch (e) { console.error(e); } diff --git a/src/front/Components/Layouts/Subscription/SubscriptionSuccess/index.tsx b/src/front/Components/Layouts/Subscription/SubscriptionSuccess/index.tsx index a2b5b2a6..6a4c2666 100644 --- a/src/front/Components/Layouts/Subscription/SubscriptionSuccess/index.tsx +++ b/src/front/Components/Layouts/Subscription/SubscriptionSuccess/index.tsx @@ -8,48 +8,84 @@ import Link from "next/link"; import Module from "@Front/Config/Module"; import { EForfeitType } from "../SubscriptionFacturation"; import SubscribeCheckoutTicket, { EPaymentFrequency } from "../Components/SubscribeCheckoutTicket"; +import { useCallback, useEffect, useState } from "react"; +import Subscriptions from "@Front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions"; +import JwtService from "@Front/Services/JwtService/JwtService"; +import { Subscription } from "le-coffre-resources/dist/Admin"; -let numberOfCollaborators = 5; export default function SubscriptionSuccess() { + const [subscription, setSubscription] = useState(null); + + const loadSubscription = useCallback(async () => { + const jwt = JwtService.getInstance().decodeJwt(); + const subscription = await Subscriptions.getInstance().get({ where: { office: { uid: jwt?.office_Id } } }); + console.log(subscription); + if (!subscription[0]) return; + setSubscription(subscription[0]); + }, []); + + const getFrequency = useCallback(() => { + if (!subscription) return; + const start = new Date(subscription.start_date); + const end = new Date(subscription.end_date); + + const diffTime = Math.abs(end.getTime() - start.getTime()); + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); + return diffDays >= 365 ? EPaymentFrequency.yearly : EPaymentFrequency.monthly; + }, [subscription]); + + useEffect(() => { + loadSubscription(); + }, [loadSubscription]); + return ( -
-
-
- - Abonnement réussi ! - + {subscription && ( +
+
+
+ + Abonnement réussi ! + +
+
+ + Votre transaction a été effectuée avec succès ! +
+
+ Votre abonnement a été pris en compte et est désormais actif. +
+
+
+
+ +
+
+ {subscription.type === "STANDARD" && ( + + + + )} + {subscription.type === "UNLIMITED" && ( + + + + )}
-
- - Votre transaction a été effectuée avec succès ! -
-
- Votre abonnement a été pris en compte et est désormais actif. -
+
+
-
-
- -
-
- - -
-
- -
-
+ )} ); }