Code Monkey home page Code Monkey logo

cm-sdk-react-native's Introduction

CMP SDK for React Native

CMP SDK is a React Native library that facilitates the management of user consent for data processing and storage. It is designed to help developers comply with various data protection regulations.

Installation

npm install cmp-sdk

Getting Started

Linking (React Native 0.59 and below)

If you are using React Native 0.59 or below, you need to link the native modules manually:

react-native link cmp-sdk

Usage

Import the Consentmanager from the cmp-sdk package in your code:

import { Consentmanager } from 'cmp-sdk';

Initializing the SDK

You can initialize the CMP SDK using either the direct configuration or a config object:

  • Direct Initialization:

    Consentmanager.createInstance('yourID', 'yourDomain', 'yourAppName', 'yourLanguage');
  • Initialization using Config Object:

    Consentmanager.createInstanceByConfig(yourConfigObject);

import { CmpConfig, CmpScreenConfig, CmpIosPresentationStyle } from 'cmp-sdk/types';

const config = new CmpConfig({ id: 'yourID', domain: 'yourDomain', appName: 'yourAppName', language: 'yourLanguage', screenConfig: CmpScreenConfig.FullScreen, iosPresentationStyle: CmpIosPresentationStyle.FullScreen, });

Consentmanager.createInstanceByConfig(config);


### Managing Consent Layer

To manage the consent layer:

- **Open Consent Layer:**
```jsx
Consentmanager.openConsentlayer();

Event Handling

Add event listeners to handle various consent-related events:

const removeListeners = Consentmanager.addEventListeners({
  onOpen: () => console.log('Consent layer opened'),
  onClose: () => console.log('Consent layer closed'),
  onNotOpened: () => console.log('Consent layer not opened'),
  onError: (type, message) => console.log(`Error: ${type}, Message: ${message}`),
  onButtonClicked: (buttonType) => console.log(`Button clicked: ${buttonType}`),
  onGoogleConsentUpdated: (consentMap) => console.log(`Google consent updated: ${JSON.stringify(consentMap)}`),
});

Remember to remove the event listeners when they are no longer needed:

removeListeners();

Consent Queries

You can check for vendor and purpose consents:

  • Check Vendor Consent:

    Consentmanager.hasVendor('vendorID').then((hasConsent) => {
      console.log('Has vendor consent: ', hasConsent);
    });
  • Check Purpose Consent:

    Consentmanager.hasPurpose('purposeID').then((hasConsent) => {
      console.log('Has purpose consent: ', hasConsent);
    });

Resetting Consent

To reset the current consent settings:

Consentmanager.reset();

Exporting Consent String

Export the current consent string:

Consentmanager.exportCmpString().then((cmpString) => {
  console.log('CMP String: ', cmpString);
});

Additional Methods

The CMP SDK provides various methods to retrieve or manage consent data, such as:

  • getAllVendors()
  • getAllPurposes()
  • getEnabledVendors()
  • getEnabledPurposes()
  • getDisabledVendors()
  • getDisabledPurposes()
  • getUSPrivacyString()
  • getGoogleACString()

Refer to the SDK documentation for detailed information on these methods.


Remember to replace placeholders like 'yourID', 'yourDomain', etc., with actual values relevant to the users of your SDK. You can also expand each section with more detailed examples if needed.

Jest mocks

When running jest, you can pass our mock

jest.mock('cmp-sdk', () =>
  require('cmp-sdk/jest/mock'),
);

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library


cm-sdk-react-native's People

Contributors

skander-iubenda avatar gregoirevda avatar

Stargazers

 avatar

Watchers

Lucian avatar Silvio Relli avatar Andrea Giannangelo avatar Mimmo Vele avatar Jan Winkler avatar Matteo Niccoli avatar Matthias Radscheit avatar kev avatar PRABU KUPPUSAMY avatar  avatar

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.