New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-onesignal

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-onesignal - npm Package Compare versions

Comparing version 1.5.1 to 1.6.0

dist/constants/permissionStatusEnum.d.ts

2

.eslintrc.js

@@ -48,3 +48,5 @@ module.exports = {

"no-continue": 0,
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error"]
},
};

5

dist/index.d.ts

@@ -1,4 +0,5 @@

import permissionStatusEnum from './permissionStatus';
import permissionStatusEnum from './constants/permissionStatusEnum';
import useOneSignalSetup from './hooks/useOneSignalSetup';
import OneSignal from './oneSignal';
export { permissionStatusEnum as permissionStatus, };
export { permissionStatusEnum as permissionStatus, useOneSignalSetup, };
export default OneSignal;

@@ -1,2 +0,6 @@

/* eslint-disable no-unused-vars */
import { useRef, useEffect, useState } from 'react';
/**
* Defines possible values for permissions statuses.
*/
var permissionStatusEnum;

@@ -242,3 +246,3 @@ (function (permissionStatusEnum) {

if (!oneSignal) {
reject();
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;

@@ -275,2 +279,20 @@ }

/**
* Remove email on OneSignal instance.
*/
var logoutEmail = function () { return new Promise(function (resolve, reject) {
var oneSignal = getOneSignalInstance();
if (!oneSignal) {
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;
}
try {
oneSignal.logoutEmail()
.then(function (value) { return resolve(value); })
.catch(function (error) { return reject(error); });
}
catch (error) {
reject(error);
}
}); };
/**
* Gets the email ID configured on OneSignal instance.

@@ -331,2 +353,20 @@ */

/**
* Sets the external user ID on OneSignal instance.
*/
var removeExternalUserId = function () { return new Promise(function (resolve, reject) {
var oneSignal = getOneSignalInstance();
if (!oneSignal) {
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;
}
try {
oneSignal.removeExternalUserId()
.then(function () { return resolve(); })
.catch(function (error) { return reject(error); });
}
catch (error) {
reject(error);
}
}); };
/**
* Gets the external user ID configured on OneSignal instance.

@@ -394,2 +434,3 @@ */

var ReactOneSignal = {
getOneSignalInstance: getOneSignalInstance,
initialize: initialize,

@@ -403,5 +444,7 @@ notificationPermission: notificationPermission,

setEmail: setEmail,
logoutEmail: logoutEmail,
getEmailId: getEmailId,
getPlayerId: getPlayerId,
setExternalUserId: setExternalUserId,
removeExternalUserId: removeExternalUserId,
getExternalUserId: getExternalUserId,

@@ -412,4 +455,48 @@ sendTag: sendTag,

/**
* Hook that exposes an interval, similar to setInterval.
* @param callback The callback function
* @param delay The delay
*/
function useInterval(callback, delay) {
var savedCallback = useRef();
// Remember the latest callback.
useEffect(function () {
savedCallback.current = callback;
}, [callback]);
// Set up the interval.
useEffect(function () {
if (delay !== null && savedCallback.current) {
var tick = function () {
savedCallback.current();
};
var id_1 = setInterval(tick, delay);
return function () { return clearInterval(id_1); };
}
return function () { };
}, [delay]);
}
/**
* Hook that waits for oneSignal initialization before executing the callback
* useful for using setEmail and setExternalUserId without getting error
* it uses setInterval to check if OneSignal is setup, calling the callback when it is
*
* @param callback the callback to be called when oneSignal is initialized.
* @param pollingIntervalMs time between checks, null to disable.
*/
var useOneSignalSetup = function (callback, pollingIntervalMs) {
if (pollingIntervalMs === void 0) { pollingIntervalMs = 100; }
var _a = useState(false), initialized = _a[0], setInitialized = _a[1];
useInterval(function () {
var oneSignal = getOneSignalInstance();
if (oneSignal) {
setInitialized(true);
callback();
}
}, initialized ? null : pollingIntervalMs);
};
export default ReactOneSignal;
export { permissionStatusEnum$1 as permissionStatus };
export { permissionStatusEnum$1 as permissionStatus, useOneSignalSetup };
//# sourceMappingURL=index.es.js.map

@@ -5,3 +5,7 @@ 'use strict';

/* eslint-disable no-unused-vars */
var react = require('react');
/**
* Defines possible values for permissions statuses.
*/
var permissionStatusEnum;

@@ -247,3 +251,3 @@ (function (permissionStatusEnum) {

if (!oneSignal) {
reject();
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;

@@ -280,2 +284,20 @@ }

/**
* Remove email on OneSignal instance.
*/
var logoutEmail = function () { return new Promise(function (resolve, reject) {
var oneSignal = getOneSignalInstance();
if (!oneSignal) {
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;
}
try {
oneSignal.logoutEmail()
.then(function (value) { return resolve(value); })
.catch(function (error) { return reject(error); });
}
catch (error) {
reject(error);
}
}); };
/**
* Gets the email ID configured on OneSignal instance.

@@ -336,2 +358,20 @@ */

/**
* Sets the external user ID on OneSignal instance.
*/
var removeExternalUserId = function () { return new Promise(function (resolve, reject) {
var oneSignal = getOneSignalInstance();
if (!oneSignal) {
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;
}
try {
oneSignal.removeExternalUserId()
.then(function () { return resolve(); })
.catch(function (error) { return reject(error); });
}
catch (error) {
reject(error);
}
}); };
/**
* Gets the external user ID configured on OneSignal instance.

@@ -399,2 +439,3 @@ */

var ReactOneSignal = {
getOneSignalInstance: getOneSignalInstance,
initialize: initialize,

@@ -408,5 +449,7 @@ notificationPermission: notificationPermission,

setEmail: setEmail,
logoutEmail: logoutEmail,
getEmailId: getEmailId,
getPlayerId: getPlayerId,
setExternalUserId: setExternalUserId,
removeExternalUserId: removeExternalUserId,
getExternalUserId: getExternalUserId,

@@ -417,4 +460,49 @@ sendTag: sendTag,

/**
* Hook that exposes an interval, similar to setInterval.
* @param callback The callback function
* @param delay The delay
*/
function useInterval(callback, delay) {
var savedCallback = react.useRef();
// Remember the latest callback.
react.useEffect(function () {
savedCallback.current = callback;
}, [callback]);
// Set up the interval.
react.useEffect(function () {
if (delay !== null && savedCallback.current) {
var tick = function () {
savedCallback.current();
};
var id_1 = setInterval(tick, delay);
return function () { return clearInterval(id_1); };
}
return function () { };
}, [delay]);
}
/**
* Hook that waits for oneSignal initialization before executing the callback
* useful for using setEmail and setExternalUserId without getting error
* it uses setInterval to check if OneSignal is setup, calling the callback when it is
*
* @param callback the callback to be called when oneSignal is initialized.
* @param pollingIntervalMs time between checks, null to disable.
*/
var useOneSignalSetup = function (callback, pollingIntervalMs) {
if (pollingIntervalMs === void 0) { pollingIntervalMs = 100; }
var _a = react.useState(false), initialized = _a[0], setInitialized = _a[1];
useInterval(function () {
var oneSignal = getOneSignalInstance();
if (oneSignal) {
setInitialized(true);
callback();
}
}, initialized ? null : pollingIntervalMs);
};
exports.default = ReactOneSignal;
exports.permissionStatus = permissionStatusEnum$1;
exports.useOneSignalSetup = useOneSignalSetup;
//# sourceMappingURL=index.js.map

@@ -1,6 +0,11 @@

import { OneSignalOptions, IOneSignalEvent } from './oneSignal.types';
import { IOneSignal, OneSignalOptions, IOneSignalEvent } from './oneSignal.types';
/**
* Gets the window OneSignal instance.
*/
export declare const getOneSignalInstance: () => IOneSignal | null;
/**
* Object for manipulating OneSignal.
*/
declare const ReactOneSignal: {
getOneSignalInstance: () => IOneSignal | null;
initialize: (appId: string, options: OneSignalOptions, events?: IOneSignalEvent[]) => void;

@@ -14,5 +19,7 @@ notificationPermission: () => string[] | null;

setEmail: (email: string) => Promise<string>;
logoutEmail: () => Promise<void>;
getEmailId: () => Promise<string>;
getPlayerId: () => Promise<string>;
setExternalUserId: (externalUserId: string | number) => Promise<void>;
removeExternalUserId: () => Promise<void>;
getExternalUserId: () => Promise<string>;

@@ -19,0 +26,0 @@ sendTag: (key: string, val: string) => Promise<string>;

@@ -9,5 +9,7 @@ export interface IOneSignal {

setEmail: (email: string) => Promise<string>;
logoutEmail: () => Promise<void>;
getEmailId: () => Promise<string>;
getUserId: () => Promise<string>;
setExternalUserId: (externalUserId: string | number) => Promise<void>;
removeExternalUserId: () => Promise<void>;
getExternalUserId: () => Promise<any>;

@@ -14,0 +16,0 @@ initialized: boolean;

@@ -0,1 +1,4 @@

/**
* Defines possible values for permissions statuses.
*/
declare enum permissionStatusEnum {

@@ -2,0 +5,0 @@ Default = "default",

{
"name": "react-onesignal",
"version": "1.5.1",
"version": "1.6.0",
"description": "React OneSignal Module: Make it easy to integrate OneSignal with your React App!",

@@ -21,3 +21,5 @@ "author": "pedro-lb",

},
"peerDependencies": {},
"peerDependencies": {
"react": ">= 16.8"
},
"devDependencies": {

@@ -57,2 +59,3 @@ "@babel/core": "^7.0.0",

"eslint-plugin-react-hooks": "^1.7.0",
"react": "^16.13.1",
"rollup": "^1.1.2",

@@ -59,0 +62,0 @@ "rollup-plugin-babel": "^4.3.2",

@@ -81,5 +81,7 @@ # React OneSignal

setEmail: (email: string) => Promise<string>;
logoutEmail: () => Promise<void>;
getEmailId: () => Promise<string>;
getUserId: () => Promise<string>;
setExternalUserId: (externalUserId: string | number) => Promise<void>;
removeExternalUserId: () => Promise<void>;
getExternalUserId: () => Promise<any>;

@@ -125,3 +127,3 @@ initialized: boolean;

You can use `setEmail` and `getEmailId` to track user email.
You can use `setEmail`, `getEmailId` and `logoutEmail` to track user email.

@@ -134,2 +136,5 @@ ```js

const emailId = await OneSignal.getEmailId();
// Remove email tracking
OneSignal.logoutEmail();
```

@@ -139,3 +144,3 @@

You can use `setExternalUserId` and `getExternalUserId` to track external user ID.
You can use `setExternalUserId`, `getExternalUserId` and `removeExternalUserId` to track external user ID.

@@ -148,2 +153,5 @@ ```js

const externalUserId = await OneSignal.getExternalUserId();
// Remove external user ID
OneSignal.removeExternalUserId();
```

@@ -215,2 +223,26 @@

### Setup hook
To avoid error due to OneSignal not initialized, you can use useOneSignalSetup hook, passing a callback to be called when OneSignal is ready
```ts
import OneSignal, { useOneSignalSetup } from 'react-onesignal';
type AppProps = {
user: {
id: string;
Email: string;
};
};
function App(props: AppProps) {
const { user } = props;
useOneSignalSetup(() => {
OneSignal.setEmail(user.Email);
OneSignal.setExternalUserId(user.id);
});
}
```
## Contributing

@@ -217,0 +249,0 @@

@@ -1,2 +0,3 @@

import permissionStatusEnum from './permissionStatus';
import permissionStatusEnum from './constants/permissionStatusEnum';
import useOneSignalSetup from './hooks/useOneSignalSetup';
import OneSignal from './oneSignal';

@@ -6,4 +7,5 @@

permissionStatusEnum as permissionStatus,
useOneSignalSetup,
};
export default OneSignal;

@@ -1,2 +0,1 @@

// eslint-disable-next-line no-unused-vars
import { IOneSignal, OneSignalOptions, IOneSignalEvent } from './oneSignal.types';

@@ -118,3 +117,3 @@

*/
const getOneSignalInstance = () => {
export const getOneSignalInstance = () => {
const OneSignal: IOneSignal = window['OneSignal'];

@@ -303,3 +302,3 @@

if (!oneSignal) {
reject();
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;

@@ -339,2 +338,22 @@ }

/**
* Remove email on OneSignal instance.
*/
const logoutEmail = () => new Promise<void>((resolve, reject) => {
const oneSignal = getOneSignalInstance();
if (!oneSignal) {
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;
}
try {
oneSignal.logoutEmail()
.then((value) => resolve(value))
.catch((error) => reject(error));
} catch (error) {
reject(error);
}
});
/**
* Gets the email ID configured on OneSignal instance.

@@ -403,2 +422,23 @@ */

/**
* Sets the external user ID on OneSignal instance.
*/
const removeExternalUserId = (
) => new Promise<void>((resolve, reject) => {
const oneSignal = getOneSignalInstance();
if (!oneSignal) {
reject(new Error(ONESIGNAL_NOT_SETUP_ERROR));
return;
}
try {
oneSignal.removeExternalUserId()
.then(() => resolve())
.catch((error) => reject(error));
} catch (error) {
reject(error);
}
});
/**
* Gets the external user ID configured on OneSignal instance.

@@ -468,2 +508,3 @@ */

/**

@@ -473,2 +514,3 @@ * Object for manipulating OneSignal.

const ReactOneSignal = {
getOneSignalInstance,
initialize,

@@ -482,5 +524,7 @@ notificationPermission,

setEmail,
logoutEmail,
getEmailId,
getPlayerId,
setExternalUserId,
removeExternalUserId,
getExternalUserId,

@@ -487,0 +531,0 @@ sendTag,

@@ -9,5 +9,7 @@ export interface IOneSignal {

setEmail: (email: string) => Promise<string>;
logoutEmail: () => Promise<void>;
getEmailId: () => Promise<string>;
getUserId: () => Promise<string>;
setExternalUserId: (externalUserId: string | number) => Promise<void>;
removeExternalUserId: () => Promise<void>;
getExternalUserId: () => Promise<any>;

@@ -14,0 +16,0 @@ initialized: boolean;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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