import React from 'react' import { Button } from '@app/components/general/buttons/button' import { useStripe, useElements, CardElement } from '@stripe/react-stripe-js' interface Props { onToken(token: any): any plan?: string price: number disabled: boolean } const style = { base: { iconColor: '#0E1116', fontWeight: '500', fontFamily: 'system-ui, -apple-system, Helvetica Neue', fontSize: '20px', fontSmoothing: 'antialiased', }, } export const CheckoutForm = ({ onToken, price, disabled }: Props) => { const stripe = useStripe() const elements = useElements() const handleSubmit = async (event: React.FormEvent) => { event.preventDefault() if (!stripe || !elements) { return } const cardElement = elements.getElement(CardElement) if (cardElement) { const { error, token } = await stripe.createToken(cardElement) if (!error) { await onToken(token) } else { console.error(error) } } } return (
Total{' '} {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', }).format(price / 100)}
) }