Add Mollie checkout flow, billing UI, and payment UX polish #71

Merged
uz1mani merged 73 commits from staging into main 2026-03-28 10:28:03 +00:00
2 changed files with 11 additions and 2 deletions
Showing only changes of commit 704557f233 - Show all commits

View File

@@ -109,7 +109,7 @@ export default function PricingSection() {
const [loadingPlan, setLoadingPlan] = useState<string | null>(null)
const { user } = useAuth()
// * Show toast when redirected from Polar Checkout with canceled=true
// * Show toast when redirected from Mollie Checkout with canceled=true
useEffect(() => {
if (searchParams.get('canceled') === 'true') {
toast.info('Checkout was canceled. You can try again whenever youre ready.')
@@ -196,7 +196,7 @@ export default function PricingSection() {
limit,
})
// 3. Redirect to Polar Checkout
// 3. Redirect to Mollie Checkout
if (url) {
window.location.href = url
} else {

View File

@@ -72,6 +72,8 @@ export interface CreateCheckoutParams {
plan_id: string
interval: string
limit: number
country: string
vat_id?: string
}
export async function createCheckoutSession(params: CreateCheckoutParams): Promise<{ url: string }> {
@@ -81,6 +83,13 @@ export async function createCheckoutSession(params: CreateCheckoutParams): Promi
})
}
/** Creates a Mollie checkout session to update the payment mandate. */
export async function updatePaymentMethod(): Promise<{ url: string }> {
return apiRequest<{ url: string }>('/api/billing/update-payment-method', {
method: 'POST',
})
}
export interface Order {
id: string
total_amount: number