npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

dibsy-react

v1.0.1

Published

Dibsy react js library

Downloads

4

Readme

dibsy-react

React component for Dibsy.js

NPM JavaScript Style Guide

Installation

dibsy-react is available as an npm package.

npm install --save dibsy-react

or if you prefer Yarn

yarn add dibsy-react

Simple Example

  1. Create a .env file with your Dibsy public API key and your backend API endppoint.
  REACT_APP_DIBSY_PUBLIC_KEY="your_public_Dibsy_API_key"
  REACT_APP_YOUR_BACKEND_API="your_backend_API_endpoint"
  1. You can start with the basic example below.
import React, { Component } from 'react'
import { EmbedWrapper, CardNumber, ExpiryDate, CardCvc } from 'dibsy-react'
import 'dibsy-react/dist/index.css'

type submitPaymentFunctionType = (paymentToken: string) => void

const Checkout = () => {

  const [canSubmit, setCanSubmit] = useState(false)

  function onSubmit(e: any, submitPayment: submitPaymentFunctionType) {
    e.preventDefault()

    // Initialize the payment and submit the payment token.
    axios.post(`${process.env.REACT_APP_YOUR_BACKEND_API}/init-payment`).then(res => {
      if (res?.data?.paymentToken) {
        // Submit the Payment
        submitPayment(res.data.paymentToken)
      } else {
        console.log('Error while initiating payment')      }
    }).catch(error => console.log(error))
  }


  function onPaymentComplete(success: boolean, payment: any) {
    console.log(success, payment)
  }

    return
        <EmbedWrapper
            publicKey={process.env.REACT_APP_DIBSY_PUBLIC_KEY}
            onCanSubmitChange={(value) => {
              setCanSubmit(value)
            }}
            onPaymentComplete={onPaymentComplete}
          >
            {
              ({
                submitPayment,
                isCheckoutSubmitted
              } : {
                submitPayment: submitPaymentFunctionType,
                isCheckoutSubmitted: boolean
              }) => <div className={'card-container'}>
                      <CardNumber  />
                      <div className='row'>
                        <div className='col'>
                          <ExpiryDate />
                        </div>
                        <div className='col'>
                          <CardCvc />
                        </div>
                      </div>
                      <button
                        className={'submit-button'}
                        onClick={(e) => onSubmit(e, submitPayment)}
                        disabled={!canSubmit || isCheckoutSubmitted} type='submit'
                        >
                        {
                          !isCheckoutSubmitted ? 'Submit checkout' : 'Submitting ...'
                        }
                      </button>
              </div>
            }
      </EmbedWrapper>
}

Documentation

EmbedWrapper Component props

The EmbedWrapper is a parent component that allows you to embed the checkout fields and the submit button inside them. You must also use EmbedWrapper to pass your Dibsy public key and recieve props related to the payment process.

  onPaymentComplete: (payment: any,error: boolean) => void;
  onCanSubmitChange?: (value: boolean) => void;
  onSubmitStateChange?: (state: string) => void;
  onPaymentTabClose?: () => void,
  publicKey: string;
  onErrors?: (errors: ICardErrors) => void;

onPaymentComplete

Type: (payment: any,error: Error) => void

Default: undefined

The function is triggered when the payment is completed.

  error : {
      message:"error message in case of not null"
  }

onCanSubmitChange

Type: (value: boolean) => void

Default: undefined

The function tracks if the the button can be submitted or no.

onSubmitStateChange

Type: (state: string) => void

Default: undefined

The function tracks different state of the payment completed,failed,success,3ds

onPaymentTabClose

Type: () => void

Default: undefined

The function is triggered when the window closed or 3ds authentitication form is closed.

onErrors?: (errors: ICardErrors) => void;

Type: (errors:Object) => void

Default: undefined

The function tracks the checkout errors for each field, the parameter errors is an object with name of each field and the error.

  errors : {
      cardNumber:"error message or null"
      cardCode:"error message or null"
      expiryDate:"error message or null"
  }

publicKey

Type: string

Default: undefined The public key API from Dibsy Dashboard.

CardNumber, CardCvc, ExpiryDate Components props

Checkout fields components provide a flexible way to securely collect payment information in your React app. They must be passed as children of the EmbedWrapper inside a function which taken two parameters, submitPayment and isCheckoutSubmitted.

  customStyles: object;

customStyles

Type: object

Default: undefined

Custom style for the card inputs.

License

MIT © dibsyhq, Oussidi Mohamed