0.3.0 • Published 6 months ago

@pushprotocol/uiembed v0.3.0

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

uiembed

This package helps to embed Push notifications in a sidebar to any dApp

How to use in your app?

Installation

  yarn add @pushprotocol/uiembed

or

  npm install @pushprotocol/uiembed  

Import in your file

import { EmbedSDK } from "@pushprotocol/uiembed";

add in HTML/JSX the below HTML tag -

<button id="sdk-trigger-id">trigger button</button>

or any component with the ID sdk-trigger-id

Make sure the ID you give to the "button" is same as that of the targetID you pass to the init() below

After the wallet connect happens in your app flow trigger the below code snippet.

Note: You have to have the wallet connected with an account to execute the below code because internally the SDK calls the PUSH get_feeds() API which needs the account address. You will see notifications if you have opted-in to a channel using PUSH

  useEffect(() => {
    if (account) { // 'your connected wallet address'
      EmbedSDK.init({
        headerText: 'Hello DeFi', // optional
        targetID: 'sdk-trigger-id', // mandatory
        appName: 'consumerApp', // mandatory
        user: account, // mandatory
        chainId: 1, // mandatory
        viewOptions: {
            type: 'sidebar', // optional [default: 'sidebar', 'modal']
            showUnreadIndicator: true, // optional
            unreadIndicatorColor: '#cc1919',
            unreadIndicatorPosition: 'bottom-right',
        },
        theme: 'light',
        onOpen: () => {
          console.log('-> client dApp onOpen callback');
        },
        onClose: () => {
          console.log('-> client dApp onClose callback');
        }
      });
    }

    return () => {
      EmbedSDK.cleanup();
    };
  }, []);

Init Config Options

optiontypemandatoryremarks
targetIDstringyescan be any string but has to match the ID given to the trigger button in the HTML/JSX
chainIdnumberyesthe chain ID of the blockchain network. by default is 1
appNamestringyesyour app name e.g. - 'appName'
userstringyespublic wallet address e.g. - '0x1434A7882cDD877B458Df5b83c993e9571c65813'
viewOptions.typestringnodefault 'sidebar', can give 'modal'
viewOptions.showUnreadIndicatorbooleannowill show the unread indicator
viewOptions.unreadIndicatorColorstringnocolor for the unread indicator e.g. - '#cc1919'
viewOptions.unreadIndicatorPositionstringnodefault is 'top-right', other possible options - 'top-left', 'bottom-left', 'bottom-right'
headerTextstringnoany header text
themestringnodefault is 'light', can give 'dark'
onOpenfunctionnocallback you want to trigger when the modal/sidebar opens
onClosefunctionnocallback you want to trigger when the modal/sidebar closes

Building

Run nx build uiembed to build the library.

Running unit tests

Run nx test uiembed to execute the unit tests via Jest.

0.3.0

6 months ago

0.2.0

1 year ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.1

2 years ago