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

@moonpay/moonpay-react

v1.8.2

Published

The MoonPay React SDK enables you to integrate the MoonPay widget so you can facilitate crypto purchases within your platform.

Downloads

31,600

Readme

@moonpay/moonpay-react

This packages makes the MoonPay Web SDK easy to use in React.

Setup

To get started, install the required packages.

npm install @moonpay/moonpay-react

Provider

The MoonPayProvider allows you to use MoonPay components throughout your app, abstracting the complexity of managing the loaded SDK instance.

import { MoonPayProvider } from '@moonpay/moonpay-react';

export default function App() {
  return (
    <MoonPayProvider apiKey="pk_test_123">
      <Home />
    </MoonPayProvider>
  );
}

This provider allows you to initialise MoonPay components throughout your app as needed. You can also pass any of our other SDK config properties to our React components. For example, here's how you might initialise the widget with some query params and event handlers:

import { MoonPayBuyWidget } from '@moonpay/moonpay-react';

export default function Buy() {
  return (
    <MoonPayBuyWidget
      variant="embedded"
      onLogin={() => console.log('Customer logged in to MoonPay!')}
      baseCurrencyCode="usd"
      quoteCurrencyCode="eth"
      quoteCurrencyAmount="0.89342"
    />
  );
}

Or, if you prefer to keep your handlers and params separate:

import { MoonPayBuyWidget } from '@moonpay/moonpay-react';

export default function Buy() {
  const handlers = {
    onLogin: () => {
      console.log('Customer logged into MoonPay!');
    },
    // more handlers ...
  };

  const params = {
    baseCurrencyCode: 'usd',
    quoteCurrencyCode: 'eth',
    quoteCurrencyAmount: '0.89342',
    // more params ...
  };

  return <MoonPayBuyWidget variant="embedded" {...handlers} {...params} />;
}

In the below example, since we're using the overlay variant, it won't show by default when it renders. Instead, we can use a simple state value to control whether it's visible.

import { MoonPayBuyWidget } from '@moonpay/moonpay-react';

export default function Buy() {
  const [isMoonPayVisible, setIsMoonPayVisible] = useState(false);

  return (
    <div>
      <MoonPayBuyWidget variant="overlay" visible={isMoonPayVisible} />
      <button onClick={() => setIsMoonPayVisible(true)}>Show widget</button>
    </div>
  );
}

If you use the walletAddress or walletAddresses param, you must sign the widget URL using your secret key on the server side. The widget has provided prop calls your signing function on the URL anytime it's initialised or changed, and updates the URL, ensuring it's always up to date.

import { MoonPayBuyWidget } from '@moonpay/moonpay-react';

export default function Buy() {
  return (
    <MoonPayBuyWidget
      variant="overlay"
      walletAddress="0x0...0"
      onUrlSignatureRequested={async (url) => await yourSigningFunction(url)}
    />
  );
}