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

@ricardianfabric/react-components

v0.0.2

Published

A ricardian contract component that works with contracts deployed from Ricardian Fabric.

Downloads

2

Readme

Ricardian Contract React Component

This is react dependency used for rendering ricardian contracts inside react application.

The dependency allows you to use any component framework and render the ricardian contract directly into your application1

You can find the example here: https://github.com/Ricardian-Fabric/Ricardian-Contract-React-Component-EXAMPLE

The Ricardian contract exposes the following interface:

    <RicardianContract
        LoadingIndicator={<ProgressIndicator />}
        arweaveTx='ARWEAVE_TRANSACTION_ID'
        AcceptButton={<button>Accept</button>}
        signingSuccessCallback={() => { 
            // Do something when contract is accepted 
        }}
        signingErrorCallback={(msg) => {
            // Handle errors, the msg contains the eror message
        }}
        provider={PROVIDER}
        useReverseGeocoding={true}
    ></RicardianContract>

Interface

export interface RicardianContractProps {
    arweaveTx: string,
    provider: provider,
    LoadingIndicator: React.ReactNode,
    useReverseGeocoding: boolean,
    AcceptButton: React.ReactNode,
    signingSuccessCallback: SigningSuccessCallback,
    signingErrorCallback: SigningErrorCallback,

}

LoadingIndicator

You can pass in any JSX element to render as loading indicator while the contract is loading

arweaveTx

The transaction ID of the Arweave transaction containing the Ricardian Contract. You can get this from Ricardian Fabric

AcceptButton

Pass in any button element to render. The Ricardian Contract component will overlay this button element and listen for click events on the overlay so any component will do.

signingSuccessCallback

Pass in any function to call when a contract has been accepted

signingErrorCallback

Pass a callback to this prop, It will be called when errors occur

provider

The Provider is a valid web3 provider from web3-core. For example you can use window.ethereum. The component uses this provider to initialize web3.js internally.

useReverseGeocoding

The built in decentralized reverse geocoder is useful for blocking countries from signing the app, but only client side. You can determine the location of a browser from the coordinates from the geolocaiton API.

Example

You can find the working example here:

Development

When developing you can link this dependency using npm link to an external application created with create-react-app.

When making changes run npm run build to rebuild the dependency and it will refresh in the other react project too

You might run into this error:

Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:

    You might have mismatching versions of React and the renderer (such as React DOM)
    You might be breaking the Rules of Hooks
    You might have more than one copy of React in the same app See react-invalid-hook-call for tips about how to debug and

fix this problem

I was able to fix this by making my app and library point to the same react (package) location.

Below are the steps I followed :

  1. In Your Application: a) cd node_modules/react && npm link b) cd node_modules/react-dom && npm link

  2. In Your Library a) npm link react b) npm link react-dom

3)Stop your dev-server and do npm start again.

This Error Does not appear when importing the dependency from NPM.

Bug Reports

Please open an issue if you find any problems with this dependency so it can be resolved ASAP. Thank!