Skip to content

Releases: OneSignal/react-onesignal

1.6.0

24 Aug 23:41

Choose a tag to compare

🔥 New setup hook!

You can now use the new setup hook to setup your OneSignal settings as soon as OneSignal is initialized into the page. This makes it much easier for you to apply your settings since you don't have to check if OneSignal is initialized or not! 😆

Here's a quick example:

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);
  });
}

🔥 New functions

This version adds two more functions to help setup OneSignal:

  • logoutEmail
  • removeExternalUserId

Examples:

import OneSignal from 'react-onesignal';

// Remove email tracking
OneSignal.logoutEmail();

// Remove external user ID
OneSignal.removeExternalUserId();

💅 Improvements

This version also brings up some improvements, raising the bar on code quality and upgrading some dependencies.

Thanks to @BigsonLvrocha for the contributions! 🚀

1.5.0

17 Aug 15:17

Choose a tag to compare

🔥 Support new options

This version adds support for new methods:

  • isPushNotificationsEnabled
  • isPushNotificationsSupported
  • setSubscription

🔥 Improve error handling

If your OneSignal is not set up properly, this lib will now throw an exception.

Thanks to @Matiyeu and @BigsonLvrocha for the contributions! 🚀

1.4.0

30 Jul 18:02

Choose a tag to compare

🔥 Support new options

This version adds Safari support, as well as some new options to customize your OneSignal instance:

  • safari_web_id
  • prenotify
  • theme
  • offset
  • text
  • colors

Refer to the official documentation for more info on Safari support.

Thanks to @Matiyeu for the contribution! 🚀

1.3.0

19 Jun 18:05

Choose a tag to compare

🔥 Support OneSignal Tags and Audience Segmenting

You can now use sendTag and sendTags to set OneSignal tags for segment filtering.

Refer to the README:

// Send a tag to OneSignal for the current player
OneSignal.sendTag('tag', 'tagValue');

// Send multiple tags to OneSignal for the current player
const keyValues = {
  'tag1': 'value1',
  'tag2': 'value2',
  'tag3': 'value3',
};

OneSignal.sendTags(keyValues);

Thanks to @slothluvchunk for the contribution! 🚀

1.2.1

19 Jun 14:08

Choose a tag to compare

🔥 Support Event Listeners

We now support event listeners in OneSignal - you can listen for events such as subscriptionChange, notificationDismiss, etc.

For documentation on events and event listeners, check out the Web Push SDK docs.

Refer to the README:

To add an event listener to the OneSignal.push() array, pass an array of events to the ReactOneSignal.initialize() function as the third parameter.

Each object in the array should contain:

  • listener -- (optional) Default value: 'on'.
    Some events can be listened for via multiple listeners (e.g. .on(), .once()).
    Check the docs to see which listeners listen for your event.
    Example: 'on' | 'once'

  • event -- Name of the event being listened for.
    Example: 'subscriptionChange'

  • callback -- Callback function for event.
    Example: (value) => { console.log(value); }

const events = [
  {
    listener: 'once',
    event: 'subscriptionChange',
    callback: (isSubscribed) => {
      if (true === isSubscribed) {
        console.log('The user subscription state is now:', isSubscribed);
      }
    },
  },
  {
    event: 'notificationDisplay',
    callback: (event) => {
      console.warn('OneSignal notification displayed:', event);
    },
  },
  {
    event: 'notificationDismiss',
    callback: (event) => {
      console.warn('OneSignal notification dismissed:', event);
    },
  },
];


ReactOneSignal.initialize(applicationId, options, events);

Thanks to @slothluvchunk for the contribution! 🚀

1.1.19

28 May 16:52

Choose a tag to compare

🔥 Support External User ID

We now support setExternalUserId and getExternalUserId!

Refer to the README:

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

// Set external user ID
OneSignal.setExternalUserId('your_id');

// Get external user ID
const externalUserId = await OneSignal.getExternalUserId();

1.1.16

28 May 16:42

Choose a tag to compare

🔥 Support all OneSignal options in initialize

We now support all OneSignal options when initializing!

Refer to the README:

Simply initialize OneSignal with your token:

import OneSignal from 'react-onesignal';

OneSignal.initialize('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', options);

Where options is:

subdomainName?: string;
allowLocalhostAsSecureOrigin?: boolean;
requiresUserPrivacyConsent?: boolean;
persistNotification?: boolean;
autoResubscribe?: boolean;
autoRegister?: boolean;
notificationClickHandlerMatch?: string;
notificationClickHandlerAction?: string;
notifyButton?: {
  enable?: boolean;
  size?: 'small' | 'medium' | 'large';
  position?: 'bottom-left' | 'bottom-right';
  showCredit?: boolean;
}

Thanks to @David-Melo for the contribution! 🚀