import Typography, { ITypo, ITypoColor } from "@Front/Components/DesignSystem/Typography"; import classes from "./classes.module.scss"; import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate"; import Button, { EButtonVariant } from "@Front/Components/DesignSystem/Button"; import { useCallback, useEffect, useState } from "react"; import Confirm from "@Front/Components/DesignSystem/Modal/Confirm"; import useOpenable from "@Front/Hooks/useOpenable"; import MessageBox from "@Front/Components/Elements/MessageBox"; import Link from "next/link"; import Module from "@Front/Config/Module"; import Subscriptions from "@Front/Api/LeCoffreApi/Admin/Subscriptions/Subscriptions"; import JwtService from "@Front/Services/JwtService/JwtService"; import Stripe from "@Front/Api/LeCoffreApi/Admin/Stripe/Stripe"; import { useRouter } from "next/router"; import { Subscription } from "le-coffre-resources/dist/Admin"; export enum EForfeitType { "standard", "unlimited", } export const collaboratorPrice = 6.99; export const forfeitsPrices: Record = { [EForfeitType.standard]: 99, [EForfeitType.unlimited]: 199, }; export default function SubscriptionFacturation() { const router = useRouter(); const [subscription, setSubscription] = useState(null); const { close: closeCancelSubscription, isOpen: isCancelSubscriptionOpen } = useOpenable(); const { close: closeConfirmation, isOpen: isConfirmationOpen } = useOpenable(); // const cancelSubscription = useCallback(() => { // closeCancelSubscription(); // openConfirmation(); // return; // }, [closeCancelSubscription, openConfirmation]); const manageSubscription = async () => { try { const jwt = JwtService.getInstance().decodeJwt(); const subscription = await Subscriptions.getInstance().get({ where: { office: { uid: jwt?.office_Id } } }); if (!subscription[0]) return; const stripe_client_portal = await Stripe.getInstance().getClientPortalSession(subscription[0].stripe_subscription_id!); router.push(stripe_client_portal.url + "/subscriptions/" + subscription[0].stripe_subscription_id + "/update"); } catch (error) {} }; const cancelSubscription = async () => { try { const jwt = JwtService.getInstance().decodeJwt(); const subscription = await Subscriptions.getInstance().get({ where: { office: { uid: jwt?.office_Id } } }); if (!subscription[0]) return; const stripe_client_portal = await Stripe.getInstance().getClientPortalSession(subscription[0].stripe_subscription_id!); router.push(stripe_client_portal.url + "/subscriptions/" + subscription[0].stripe_subscription_id + "/cancel"); } catch (error) {} }; const manageBilling = async () => { try { const jwt = JwtService.getInstance().decodeJwt(); const subscription = await Subscriptions.getInstance().get({ where: { office: { uid: jwt?.office_Id } } }); if (!subscription[0]) return; const stripe_client_portal = await Stripe.getInstance().getClientPortalSession(subscription[0].stripe_subscription_id!); router.push(stripe_client_portal.url); } catch (error) {} }; const loadSubscription = useCallback(async () => { const jwt = JwtService.getInstance().decodeJwt(); const subscription = await Subscriptions.getInstance().get({ where: { office: { uid: jwt?.office_Id } } }); if (!subscription[0]) { router.push(Module.getInstance().get().modules.pages.Subscription.pages.New.props.path); } else { setSubscription(subscription[0]); } }, [router]); useEffect(() => { loadSubscription(); }, [loadSubscription]); console.log(forfeitsPrices[EForfeitType.unlimited].toString()); return ( {subscription && (
Abonnement
Nos forfaits sont adaptés à la taille de votre office
Forfait standard Plan par utilisateur
{subscription.type === "STANDARD" && (
Plan actif
)}
{forfeitsPrices[EForfeitType.standard]}€  HT  / mois + {collaboratorPrice}€ / collaborateur / mois
{subscription.type === "UNLIMITED" && ( // // )} {subscription.type === "STANDARD" && ( <> {/* */} {/* */} )}
Forfait illimité Plan par office
{subscription.type === "UNLIMITED" && (
Plan actif
)}
{forfeitsPrices[EForfeitType.unlimited]}€  HT  / mois Sans limite de collaborateurs
{subscription.type === "UNLIMITED" && ( )} {subscription.type === "STANDARD" && ( // // )}
)}
Avant de confirmer, veuillez prendre note des conséquences
suivantes :
  • Arrêt des fonctionnalités : Vous n'aurez plus accès aux outils de traitement et de mise à jour en temps réel.
  • Accès limité : Vous pourrez uniquement télécharger vos documents existants, sans possibilité de les éditer ou de créer de nouveaux fichiers.
Votre abonnement se terminera le XX/XX/XXXX. Assurez-vous de sauvegarder tout ce dont vous avez besoin avant cette date.
Votre abonnement se terminera le XX/XX/XXXX. Assurez-vous de sauvegarder tout ce dont vous avez besoin avant cette date.
); }