Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@monerium/sdk-react-provider

Package Overview
Dependencies
Maintainers
2
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@monerium/sdk-react-provider

React provider for the Monerium SDK.

  • 0.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
Maintainers
2
Weekly downloads
 
Created
Source
Monerium.comMonerium.appMonerium.dev

Monerium SDK React Provider

Static Badge Static Badge
Version Version

Installation

pnpm add @monerium/sdk-react-provider @tanstack/react-query
  • TanStack Query is an async state manager that handles requests, caching, and more.

Wrap App in Context Provider

Wrap your app in the QueryClientProvider React Context Provider and pass a new QueryClient instance to the client property

Inside the QueryClientProvider, wrap your app in the MoneriumProvider React Context Provider and pass the auth flow's clientId, redirectUri, and environment configuration.

import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import { MoneriumProvider } from '@monerium/sdk-react-provider';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';

import App from './App';

const rootElement = document.getElementById('root');
const root = createRoot(rootElement);

const queryClient = new QueryClient();

root.render(
  <StrictMode>
    <QueryClientProvider client={queryClient}>
      <MoneriumProvider
        clientId="f99e629b-6dca-11ee-8aa6-5273f65ed05b"
        redirectUri="https://pntvgs.csb.app/"
        environment="sandbox"
      >
        <App />
      </MoneriumProvider>
    </QueryClientProvider>
  </StrictMode>
);

Hooks

The following hooks are now available within your application:

Example

import { useAuth, useProfile } from '@monerium/sdk-react-provider';

export default function App() {
  const { authorize, isAuthorized } = useAuth();
  const { profile } = useProfile();

  return (
    <div className="App">
      {!isAuthorized && <button onClick={authorize}>Authorize</button>}
      {profile ? <h1>{profile?.email}</h1> : <h1>No profile</h1>}
    </div>
  );
}

Demo

https://pntvgs.csb.app/

Hook used to access the SDK: https://codesandbox.io/s/monerium-sdk-react-provider-pntvgs?file=/src/App.js

The application is wrapped with MoneriumProvider https://codesandbox.io/s/monerium-sdk-react-provider-pntvgs?file=/src/index.js

Development

Running unit tests

Run turbo --filter @monerium/sdk-react-provider test to execute the unit tests

Documentation

We use TypeDoc to generate the documentation.

There are a few caveats to keep in mind when documenting the code:

  • Use @group to group functions in the entry file. E.g. @group Hooks.

  • To specifically mark @param as optional, use square brackets, e.g. [param]. Useful for optional destructed parameters.

  • For optional destructed parameters, use inline typing to improve readability.

    + @param {Object} [param] - Optional parameter.
    + @param {MyQueryType} [param.query] - Description.
    +
    + function useMyHook(
    +   { query }:
    +   { query?: MyQueryType } = {}
    + ) {}
    

    Document output:

    param?: Object
    param?.query MyQueryType
    

    Instead of:

    - type UseMyHookParams = {
    -   query?: MyQueryType
    - }
    - function useMyHook(params?: UseHookParams) {}
    

    Document output:

    params?: UseMyHookParams
    

    This would require the viewer to navigate into the UseMyHookParams type to see the optional query property.

FAQs

Package last updated on 16 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc