diff --git a/components/settings/unified/tabs/WorkspaceBillingTab.tsx b/components/settings/unified/tabs/WorkspaceBillingTab.tsx index e61c7cc..a5ecdff 100644 --- a/components/settings/unified/tabs/WorkspaceBillingTab.tsx +++ b/components/settings/unified/tabs/WorkspaceBillingTab.tsx @@ -5,7 +5,7 @@ import Link from 'next/link' import { Button, toast, Spinner } from '@ciphera-net/ui' import { CreditCard, ArrowSquareOut } from '@phosphor-icons/react' import { useSubscription } from '@/lib/swr/dashboard' -import { createPortalSession, cancelSubscription, resumeSubscription, getOrders, type Order } from '@/lib/api/billing' +import { updatePaymentMethod, cancelSubscription, resumeSubscription, getOrders, type Order } from '@/lib/api/billing' import { formatDateLong, formatDate } from '@/lib/utils/formatDate' import { getAuthErrorMessage } from '@ciphera-net/ui' @@ -18,16 +18,16 @@ export default function WorkspaceBillingTab() { getOrders().then(setOrders).catch(() => {}) }, []) - const formatAmount = (amount: number, currency: string) => { - return new Intl.NumberFormat('en-GB', { style: 'currency', currency: currency || 'USD' }).format(amount / 100) + const formatAmount = (amount: string, currency: string) => { + return new Intl.NumberFormat('en-GB', { style: 'currency', currency: currency || 'EUR' }).format(parseFloat(amount)) } const handleManageBilling = async () => { try { - const { url } = await createPortalSession() - if (url) window.open(url, '_blank') + const { url } = await updatePaymentMethod() + if (url) window.location.href = url } catch (err) { - toast.error(getAuthErrorMessage(err as Error) || 'Failed to open billing portal') + toast.error(getAuthErrorMessage(err as Error) || 'Failed to update payment method') } } @@ -149,7 +149,7 @@ export default function WorkspaceBillingTab() { {subscription.has_payment_method && ( )} @@ -180,13 +180,10 @@ export default function WorkspaceBillingTab() {