@meshconnect/react-native-link-sdk
TypeScript icon, indicating that this package has built-in type declarations

2.0.3 • Public • Published

Mesh Connect React Native SDK

React Native library for integrating with Mesh Connect.

Quality Gate Status Coverage Maintainability Rating Reliability Rating Security Rating

Installation

With npm:

npm install --save @meshconnect/react-native-link-sdk

With yarn:

yarn add @meshconnect/react-native-link-sdk

💡 This package requires react-native-webview to be installed in your project. Some times it is not installed automatically (This is a known npm issue). You should install it manually via following command in this case:

npm install --save react-native-webview

# or with yarn
yarn add react-native-webview

Get Link token

Link token should be obtained from the POST /api/v1/linktoken endpoint. API reference for this request is available here. The request must be performed from the server side because it requires the client's secret. You will get the response in the following format:

{
  "content": {
    "linkToken": "{linkToken}"
  },
  "status": "ok",
  "message": ""
}

Launch Link

import React from 'react';
import {
  LinkConnect,
  LinkPayload,
  LinkSettings,
  LinkEventType,
  IntegrationAccessToken,
  TransferFinishedPayload,
  TransferFinishedSuccessPayload,
  TransferFinishedErrorPayload
} from '@meshconnect/react-native-link-sdk';

const accessTokens: IntegrationAccessToken = [
/* Your access tokens */
];

const transferDestinationTokens: IntegrationAccessToken = [
/* Your transfer destination tokens */
];

const linkSettings: LinkSettings = {
    accessTokens,
    transferDestinationTokens,
};

export const App = () => {
  return (
    <LinkConnect
      linkToken={"YOUR_LINKTOKEN"}
      settings={linkSettings}
      onIntegrationConnected={(payload: LinkPayload) => {
        // use broker account data
      }}
      onTransferFinished={(payload: TransferFinishedPayload) => {
        if (payload.status === 'success') {
          const successPayload = payload as TransferFinishedSuccessPayload
          // use transfer finished data
        } else {
          const errorPayload = payload as TransferFinishedErrorPayload
          // handle transfer error
        }
      }}
      onEvent={(event: LinkEventType) => {
          console.log(event);
      }}
      onExit={(err?: string) => {
        // use error message
      }}
    />
  )
}

export default App;

ℹ️ See full source code examples at examples/.

LinkConnect component arguments

key type Required/Optional description
linkToken string required Link token
settings LinkSettings optional Settings object
onIntegrationConnected (payload: LinkPayload) => void optional Callback called when users connects their accounts
onTransferFinished (payload: TransferFinishedPayload) => void optional Callback called when a crypto transfer is executed
onExit (err: string) => void) optional Called if connection not happened. Returns an error message
onEvent (event: LinkEventType) => void optional Callback called when an event is triggered

The LinkSettings option allows to configure the Link behaviour:

  • accessTokens - an array of IntegrationAccessToken objects that is used as an origin for crypto transfer flow.
  • transferDestinationTokens - an array of IntegrationAccessToken objects that is used as a destination for crypto transfer flow.

V1 -> V2 migration guide

In Mesh Connect React Native SDK v2, url prop is removed from LinkConnect component. You should use linkToken prop instead of url prop. orError and onClose props are combined with onExit callback with an optional error message argument.

Following are the renamed props:

  • onBrokerConnected -> onIntegrationConnected
  • FrontPayload -> LinkPayload

The component FrontFinance is renamed to LinkConnect.

Typescript support

Typescript definitions for @meshconnect/react-native-link-sdk are built into the npm package.

Package Sidebar

Install

npm i @meshconnect/react-native-link-sdk

Weekly Downloads

87

Version

2.0.3

License

MIT

Unpacked Size

28.5 kB

Total Files

31

Last publish

Collaborators

  • afzalahmad-front
  • vitaliifront
  • azeml
  • salavat.gaynetdinov
  • balint-front