JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 18
  • Score
    100M100P100Q37231F
  • License MIT

A very simple, easy to use React button component for implementing paypal checkout

Package Exports

  • react-paypal-checkout-button

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-paypal-checkout-button) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

React-Paypal-Checkout-Button

A very simple, easy to use React button component for implementing paypal checkout, now enhanced with the power of Custom Hooks 🔥 🔥

NPM JavaScript Style Guide

Install

npm install --save react-paypal-checkout-button

or

yarn add react-paypal-checkout-button

Usage

Hooks

import React, { useRef } from 'react'
import { usePayPalCheckout } from 'react-paypal-checkout-button'


const App = () => {


const {
  isLoadingButton,
  errorMessage,
  buttonLoaded,
  onRetry,
  paypalRef
} = usePayPalCheckout({
  clientId: 'a*****************************',
  paypalRef,
  amount: 100,
  currency: 'USD',
  onSuccess: (data, order) => {
    console.log(data, order)
  },
  onError: (error) => {
    console.log(error)
  }


  return (
    {isLoadingButton && <h3>loading..</h3>}

    <div ref={paypalRef} />
  )
})

export default App

Components

import React from 'react'

import PayPalCheckout from 'react-paypal-checkout-button'
import 'react-paypal-checkout-button/dist/index.css'

const App = () => {
  return (
    <PayPalCheckout
      clientId='a*****************************'
      amount={100}
      currency='USD'
      onSuccess={(data, order) => {
        console.log(data, order)
      }}
      onError={(error) => {
        console.log(error)
      }}
    />
  )
}

export default App

Types

All relevant types are bundled and exported with the npm package

/********PayPalCheckout Types**********/
type type PayPalCheckoutProps = {
  intent?: IntentOptions // 'CAPTURE' | 'AUTHORIZE'
  clientId?: string
  amount: number
  currency?: string
  description?: string
  buttonStyles?: StylesOptions
  onSuccess?: (data: OnApproveDataTypes, order: OrderObjectTypes) => void
  onError?: (error: any) => void
}


/********usePayPalCheckout Types**********/
type UsePayPalCheckoutOptions = PayPalCheckoutProps

export type ButtonState = {
  isLoadingButton: boolean
  buttonLoaded: boolean
  errorMessage: string
}

export type UsePayPalCheckoutValues = ButtonState & {
  onRetry: () => void,
  paypalRef: (node: ReactElement | HTMLElement | null | undefined) => void
}


Contributing

we hope to make this package the first option whenever it comes to implemeting paypal checkout, so you are always welcome to contribute to this project.

  • Fork it!
  • Create your feature branch: git checkout -b feature-name
  • commit your changes: git commit -am 'Some commit message
  • Push to the branch: git push origin feature-name
  • Submit a pull request 💪
  • Add your username to the contributors' list 😄 🥰

License

MIT © UcheSylvester