Coder Social home page Coder Social logo

react-monetize's Introduction

money

react-monetize

Helpers and hooks to speed up your integration with Web Monetization API

react-monetize.now.sh

Version CI License: MIT npm Twitter: guido\_vizoso

Install

Currently supports React, Create React App, Next Js and Gatsby (through gatsby-plugin-monetization). Not yet tested in Gatsby or Preact. Not yet tested in Preact.

yarn add react-monetize

Usage

Wrap your app with the MonetizeProvider and add your payment pointer.

You can read how to get one here: https://webmonetization.org/docs/receiving

import { MonetizeProvider } from 'react-monetize';

function App() {
    return (
        <MonetizePovider paymentPointer="myPaymentPointer">
            <YourApp />
        </MonetizeProvider>
    );
}

export default App;

Now you have two hooks available to use anywhere in your app:

useStatus

State is the current state provided by Web Monetization API according to this list.

Events are the payment events registered stored as CustomEvent.

import { useStatus } from 'react-monetize';

function Component() {
    const { state, events } = useStatus();

    return (
        <>
            <p>State: {state}</p>
            <ul>
                {events.map((e) => (
                    <li key={e.timeStamp}>{`${e.detail.amount} ${e.detail.assetCode}`}</li>
                ))}
            </ul>
        </>
    );
}

export default Component;

useContent

Provides a boolean that indicates if the user has provided a payment or not so you can choose to show paid content.

import { useContent } from 'react-monetize';

function MonetizedContent() {
    const { isMonetized } = useContent();
    return (
        <React.Fragment>
            {isMonetized ? <div>My premium content</div> : <div>You need to subscribe to access premium content</div>}
        </React.Fragment>
    );
}

export default MonetizedContent;

Contribute

Clone and then:

cd react-monetize
yarn
yarn build
cd examples/next-js
yarn
yarn dev

Develop.

WIP

  • Improve documentation code and details.
  • Add documentation project to the library code.

Future changes

  • Remove global declaration for document once the property is added to DOM types.
  • Monetization UI?

Author

👤 Guido Vizoso [email protected]

Contributors

👤 Muhammad Ali [email protected]

Related projects

Show your support

Give a ⭐️ if this project helped you!


This README was generated with ❤️ by readme-md-generator

react-monetize's People

Contributors

guidovizoso avatar devcer avatar dependabot[bot] avatar mrmuhammadali avatar

Stargazers

guoaoli avatar Nolansym avatar  avatar Alex Lévy avatar Sarah Boo avatar xavier. avatar John Marinelli avatar  avatar Rio Purnomo avatar Hillisha Haygood avatar Wojciech Porosło avatar Alex Bennett avatar Nigel avatar Andrei Luca avatar Dmitri Pavlutin avatar Karey Higuera avatar James Pierce avatar Robson Kades avatar  avatar Ano Rebel avatar Gerard Brull avatar Thomas Klemm avatar Stefan Thomas avatar Mauricio Grijalba avatar Emin Gasimov avatar Dante Calderon avatar Ben Vera avatar Nabendu  avatar Leslie Owusu-Appiah avatar Aavgeen singh avatar

Watchers

James Cloos avatar  avatar

react-monetize's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.