feat: implement home page, business directory, and administrative management features with updated schema and API routes
Some checks failed
Build and Push App / build (push) Failing after 51s
Some checks failed
Build and Push App / build (push) Failing after 51s
This commit is contained in:
@@ -9,7 +9,9 @@ interface Plan {
|
||||
tier: string;
|
||||
name: string;
|
||||
priceXOF: string;
|
||||
yearlyPriceXOF?: string;
|
||||
priceEUR: string;
|
||||
yearlyPriceEUR?: string;
|
||||
description: string;
|
||||
features: string[];
|
||||
recommended: boolean;
|
||||
@@ -130,12 +132,24 @@ const PricingSection = () => {
|
||||
<p className="mt-4 text-sm text-gray-500">{plan.description}</p>
|
||||
<div className="mt-8 flex items-baseline">
|
||||
<span className="text-4xl font-extrabold text-gray-900 tracking-tight">
|
||||
{plan.priceXOF === 'Gratuit' ? 'Gratuit' : (billingCycle === 'yearly' && plan.tier !== 'STARTER' ? 'Sur Devis' : plan.priceXOF)}
|
||||
{plan.priceXOF === 'Gratuit'
|
||||
? 'Gratuit'
|
||||
: (billingCycle === 'yearly'
|
||||
? (plan.yearlyPriceXOF || plan.priceXOF)
|
||||
: plan.priceXOF
|
||||
)
|
||||
}
|
||||
</span>
|
||||
{plan.priceXOF !== 'Gratuit' && <span className="ml-1 text-xl font-medium text-gray-500">/mois</span>}
|
||||
{plan.priceXOF !== 'Gratuit' && (
|
||||
<span className="ml-1 text-xl font-medium text-gray-500">
|
||||
{billingCycle === 'yearly' ? '/an' : '/mois'}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{plan.priceXOF !== 'Gratuit' && (
|
||||
<p className="text-xs text-gray-400 mt-1">soit env. {plan.priceEUR} /mois</p>
|
||||
<p className="text-xs text-gray-400 mt-1">
|
||||
soit env. {billingCycle === 'yearly' ? (plan.yearlyPriceEUR || plan.priceEUR) : plan.priceEUR} {billingCycle === 'yearly' ? '/an' : '/mois'}
|
||||
</p>
|
||||
)}
|
||||
|
||||
<ul className="mt-8 space-y-4">
|
||||
@@ -193,8 +207,10 @@ const PricingSection = () => {
|
||||
{paymentStep === 'method' && (
|
||||
<>
|
||||
<div className="bg-brand-50 p-4 rounded-md mb-6 border border-brand-100">
|
||||
<p className="text-sm text-brand-800 font-medium">Vous avez choisi le plan <span className="font-bold">{selectedPlan.name}</span></p>
|
||||
<p className="text-2xl font-bold text-brand-900 mt-1">{selectedPlan.priceXOF}</p>
|
||||
<p className="text-sm text-brand-800 font-medium">Vous avez choisi le plan <span className="font-bold">{selectedPlan.name}</span> ({billingCycle === 'yearly' ? 'Annuel' : 'Mensuel'})</p>
|
||||
<p className="text-2xl font-bold text-brand-900 mt-1">
|
||||
{billingCycle === 'yearly' ? (selectedPlan.yearlyPriceXOF || selectedPlan.priceXOF) : selectedPlan.priceXOF}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p className="text-sm font-medium text-gray-700 mb-3">Moyen de paiement</p>
|
||||
@@ -292,7 +308,7 @@ const PricingSection = () => {
|
||||
onClick={handlePayment}
|
||||
className="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-brand-600 text-base font-medium text-white hover:bg-brand-700 focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed sm:ml-3 sm:w-auto sm:text-sm"
|
||||
>
|
||||
Payer {selectedPlan.priceXOF}
|
||||
Payer {billingCycle === 'yearly' ? (selectedPlan.yearlyPriceXOF || selectedPlan.priceXOF) : selectedPlan.priceXOF}
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user