UNPKG

react-use-wyre

Version:

🤑 React.js hooks for making payments using SendWyre. https://docs.sendwyre.com/

45 lines (44 loc) • 1.75 kB
import * as React from "react"; import { SendWyreContext } from "../contexts"; import { wyre as makeRequest } from "../requests"; import { AuthenticationType } from "../types"; const { useCallback } = React; const SendWyre = function ({ apiKey, secretKey, authenticationType, partnerId, apiUrl, baseUrl, children, ...extras }) { if (typeof partnerId !== "string") { throw new Error(`SendWyre: Expected String partnerId, encountered ${partnerId}.`); } else if (typeof secretKey !== "string") { throw new Error(`SendWyre: Expected String secretKey, encountered ${secretKey}.`); } if (authenticationType === AuthenticationType.SECRET_KEY_SIGNATURE && typeof apiKey !== "string") { throw new Error(`SendWyre: Expected String apiKey, encountered ${apiKey}.`); } const wyre = useCallback(({ url, method, data }, overrides = {}) => { if (!overrides || typeof overrides !== "object") { throw new Error(`Expected object overrides, encountered ${overrides} (${typeof overrides}).`); } return makeRequest({ apiKey, secretKey, authenticationType, apiUrl, baseUrl, url, method, data, ...overrides, }); }, [secretKey, apiKey, apiUrl, baseUrl]); return (React.createElement(SendWyreContext.Provider, Object.assign({}, extras, { value: { wyre, partnerId } }), children)); }; SendWyre.displayName = "SendWyre"; SendWyre.defaultProps = { apiKey: null, secretKey: null, authenticationType: AuthenticationType.SECRET_KEY_SIGNATURE, partnerId: null, baseUrl: "", apiUrl: "https://api.testwyre.com", }; export default SendWyre;