Skip to content

feat: add custom events for web packages#124

Merged
fadi-george merged 3 commits intomainfrom
fadi/sdk-2946-add-custom-events-for-onesignal-react-package
Sep 18, 2025
Merged

feat: add custom events for web packages#124
fadi-george merged 3 commits intomainfrom
fadi/sdk-2946-add-custom-events-for-onesignal-react-package

Conversation

@fadi-george
Copy link
Copy Markdown
Collaborator

@fadi-george fadi-george commented Sep 17, 2025

https://linear.app/onesignal/issue/SDK-2946/add-custom-events-for-onesignal-web-shim-package

  • Exposes custom event methods (trackEvent) for vue2, vue3, angular, and react.
  • Updates template gen to handle Promise and Promise
  • Adds tsc checks for react package (vite build ignores ts errors)
  • Updates templates to change outputs of certain methods from:
function pushSubscriptionOptIn(): Promise<void> {
  return new Promise(function (resolve, reject) {
    if (isOneSignalScriptFailed) {
      reject(new Error('OneSignal script failed to load.'));
      return;
    }

    try {
      window.OneSignalDeferred?.push((OneSignal) => {
        OneSignal.User.PushSubscription.optIn().then(() => resolve())
          .catch(error => reject(error));
      });
    } catch (error) {
      reject(error);
    }
  });
}

to:
(removed unnecessary try atch)

function pushSubscriptionOptIn(): Promise<void> {
  return new Promise((resolve, reject) => {
    if (isOneSignalScriptFailed) {
      reject(new Error('OneSignal script failed to load.'));
      return;
    }

    window.OneSignalDeferred?.push((OneSignal) => {
      OneSignal.User.PushSubscription.optIn()
        .then(() => resolve())
        .catch(error => reject(error));
    });
  });
}

And fixes functions like request permission (which was Promise but now is Promise due to api json changes)
Before:

function notificationsRequestPermission(): Promise<boolean> {
  return new Promise(function (resolve, reject) {
    if (isOneSignalScriptFailed) {
      reject(new Error('OneSignal script failed to load.'));
      return;
    }

    try {
      window.OneSignalDeferred?.push((OneSignal) => {
        resolve(OneSignal.Notifications.requestPermission())
          .catch(error => reject(error));
      });
    } catch (error) {
      reject(error);
    }
  });
}

to

function notificationsRequestPermission(): Promise<boolean> {
  return new Promise((resolve, reject) => {
    if (isOneSignalScriptFailed) {
      reject(new Error('OneSignal script failed to load.'));
      return;
    }

    window.OneSignalDeferred?.push((OneSignal) => {
      OneSignal.Notifications.requestPermission()
        .then(result => resolve(result))
        .catch(error => reject(error));
    });
  });
}

@fadi-george fadi-george force-pushed the fadi/sdk-2946-add-custom-events-for-onesignal-react-package branch 3 times, most recently from 97cca73 to f51fb23 Compare September 18, 2025 00:12
@fadi-george fadi-george changed the title Add custom events for web packages feat: add custom events for web packages (SDK-2946) Sep 18, 2025
@fadi-george fadi-george changed the title feat: add custom events for web packages (SDK-2946) feat: add custom events for web packages Sep 18, 2025
Copy link
Copy Markdown
Member

@jkasten2 jkasten2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can keep this PR to just custom events, move the outputs folder removal to a different PR?

@fadi-george fadi-george force-pushed the fadi/sdk-2946-add-custom-events-for-onesignal-react-package branch from f51fb23 to 8e2c156 Compare September 18, 2025 21:21
@fadi-george fadi-george merged commit 9a6670f into main Sep 18, 2025
@fadi-george fadi-george deleted the fadi/sdk-2946-add-custom-events-for-onesignal-react-package branch September 18, 2025 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants