UNPKG

@stripe/react-stripe-js

Version:

React components for Stripe.js and Stripe Elements

60 lines (52 loc) 1.75 kB
export { useCheckout, CheckoutProvider, CheckoutState, } from './components/CheckoutProvider'; export * from './types'; import React from 'react'; import createElementComponent from '../components/createElementComponent'; import {isServer} from '../utils/isServer'; import { CurrencySelectorElementComponent, BillingAddressElementComponent, ShippingAddressElementComponent, PaymentElementComponent, ExpressCheckoutElementComponent, TaxIdElementComponent, } from './types'; /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ export const CurrencySelectorElement: CurrencySelectorElementComponent = createElementComponent( 'currencySelector', isServer ); export const PaymentElement: PaymentElementComponent = createElementComponent( 'payment', isServer ); export const ExpressCheckoutElement: ExpressCheckoutElementComponent = createElementComponent( 'expressCheckout', isServer ); export const TaxIdElement: TaxIdElementComponent = createElementComponent( 'taxId', isServer ); const AddressElementBase = createElementComponent('address', isServer) as any; export const BillingAddressElement: BillingAddressElementComponent = (( props ) => { const {options, ...rest} = props as any; const merged = {...options, mode: 'billing'}; return React.createElement(AddressElementBase, {...rest, options: merged}); }) as BillingAddressElementComponent; export const ShippingAddressElement: ShippingAddressElementComponent = (( props ) => { const {options, ...rest} = props as any; const merged = {...options, mode: 'shipping'}; return React.createElement(AddressElementBase, {...rest, options: merged}); }) as ShippingAddressElementComponent;