react-onesignal 3.0.1 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release.yml +40 -0
- package/.releaserc.json +133 -0
- package/CHANGELOG.md +9 -0
- package/dist/index.d.ts +19 -2
- package/dist/index.es.js +89 -48
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +89 -48
- package/dist/index.js.map +1 -1
- package/index.ts +168 -108
- package/package.json +12 -2
package/index.ts
CHANGED
|
@@ -161,7 +161,7 @@ interface IOSNotification {
|
|
|
161
161
|
* If this value is the same as existing notification, it will replace it
|
|
162
162
|
* Can be set when creating the notification with "Web Push Topic" on the dashboard
|
|
163
163
|
* or web_push_topic from the REST API.
|
|
164
|
-
|
|
164
|
+
*/
|
|
165
165
|
readonly topic?: string;
|
|
166
166
|
|
|
167
167
|
/**
|
|
@@ -213,7 +213,7 @@ type NotificationEventTypeMap = {
|
|
|
213
213
|
'dismiss': NotificationDismissEvent;
|
|
214
214
|
'permissionChange': boolean;
|
|
215
215
|
'permissionPromptDisplay': void;
|
|
216
|
-
}
|
|
216
|
+
};
|
|
217
217
|
|
|
218
218
|
interface NotificationForegroundWillDisplayEvent {
|
|
219
219
|
readonly notification: IOSNotification;
|
|
@@ -229,6 +229,13 @@ interface NotificationClickEvent {
|
|
|
229
229
|
readonly result: NotificationClickResult;
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
+
type UserChangeEvent = {
|
|
233
|
+
current: UserNamespaceProperties;
|
|
234
|
+
};
|
|
235
|
+
type UserNamespaceProperties = {
|
|
236
|
+
onesignalId: string | undefined;
|
|
237
|
+
externalId: string | undefined;
|
|
238
|
+
};
|
|
232
239
|
|
|
233
240
|
interface IInitObject {
|
|
234
241
|
appId: string;
|
|
@@ -243,10 +250,11 @@ interface IInitObject {
|
|
|
243
250
|
autoRegister?: boolean;
|
|
244
251
|
notificationClickHandlerMatch?: string;
|
|
245
252
|
notificationClickHandlerAction?: string;
|
|
253
|
+
path?: string;
|
|
246
254
|
serviceWorkerParam?: { scope: string };
|
|
247
255
|
serviceWorkerPath?: string;
|
|
256
|
+
serviceWorkerOverrideForTypical?: boolean;
|
|
248
257
|
serviceWorkerUpdaterPath?: string;
|
|
249
|
-
path?: string;
|
|
250
258
|
allowLocalhostAsSecureOrigin?: boolean;
|
|
251
259
|
[key: string]: any;
|
|
252
260
|
}
|
|
@@ -290,6 +298,8 @@ interface IOneSignalSession {
|
|
|
290
298
|
sendUniqueOutcome(outcomeName: string): Promise<void>;
|
|
291
299
|
}
|
|
292
300
|
interface IOneSignalUser {
|
|
301
|
+
onesignalId: string | undefined;
|
|
302
|
+
externalId: string | undefined;
|
|
293
303
|
PushSubscription: IOneSignalPushSubscription;
|
|
294
304
|
addAlias(label: string, id: string): void;
|
|
295
305
|
addAliases(aliases: { [key: string]: string }): void;
|
|
@@ -303,6 +313,11 @@ interface IOneSignalUser {
|
|
|
303
313
|
addTags(tags: { [key: string]: string }): void;
|
|
304
314
|
removeTag(key: string): void;
|
|
305
315
|
removeTags(keys: string[]): void;
|
|
316
|
+
getTags(): { [key: string]: string };
|
|
317
|
+
addEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;
|
|
318
|
+
removeEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void;
|
|
319
|
+
setLanguage(language: string): void;
|
|
320
|
+
getLanguage(): string;
|
|
306
321
|
}
|
|
307
322
|
interface IOneSignalPushSubscription {
|
|
308
323
|
id: string | null | undefined;
|
|
@@ -313,17 +328,16 @@ interface IOneSignalPushSubscription {
|
|
|
313
328
|
addEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;
|
|
314
329
|
removeEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void;
|
|
315
330
|
}
|
|
316
|
-
|
|
317
331
|
function oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {
|
|
318
332
|
return new Promise((resolve, reject) => {
|
|
319
333
|
if (isOneSignalScriptFailed) {
|
|
320
|
-
reject();
|
|
334
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
335
|
+
return;
|
|
321
336
|
}
|
|
322
337
|
|
|
323
338
|
try {
|
|
324
339
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
325
|
-
OneSignal.login(externalId, jwtToken)
|
|
326
|
-
.then((value: any) => resolve(value))
|
|
340
|
+
OneSignal.login(externalId, jwtToken).then(() => resolve())
|
|
327
341
|
.catch((error: any) => reject(error));
|
|
328
342
|
});
|
|
329
343
|
} catch (error) {
|
|
@@ -331,17 +345,16 @@ function oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {
|
|
|
331
345
|
}
|
|
332
346
|
});
|
|
333
347
|
}
|
|
334
|
-
|
|
335
348
|
function oneSignalLogout(): Promise<void> {
|
|
336
349
|
return new Promise((resolve, reject) => {
|
|
337
350
|
if (isOneSignalScriptFailed) {
|
|
338
|
-
reject();
|
|
351
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
352
|
+
return;
|
|
339
353
|
}
|
|
340
354
|
|
|
341
355
|
try {
|
|
342
356
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
343
|
-
OneSignal.logout()
|
|
344
|
-
.then((value: any) => resolve(value))
|
|
357
|
+
OneSignal.logout().then(() => resolve())
|
|
345
358
|
.catch((error: any) => reject(error));
|
|
346
359
|
});
|
|
347
360
|
} catch (error) {
|
|
@@ -349,17 +362,16 @@ function oneSignalLogout(): Promise<void> {
|
|
|
349
362
|
}
|
|
350
363
|
});
|
|
351
364
|
}
|
|
352
|
-
|
|
353
365
|
function oneSignalSetConsentGiven(consent: boolean): Promise<void> {
|
|
354
366
|
return new Promise((resolve, reject) => {
|
|
355
367
|
if (isOneSignalScriptFailed) {
|
|
356
|
-
reject();
|
|
368
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
369
|
+
return;
|
|
357
370
|
}
|
|
358
371
|
|
|
359
372
|
try {
|
|
360
373
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
361
|
-
OneSignal.setConsentGiven(consent)
|
|
362
|
-
.then((value: any) => resolve(value))
|
|
374
|
+
OneSignal.setConsentGiven(consent).then(() => resolve())
|
|
363
375
|
.catch((error: any) => reject(error));
|
|
364
376
|
});
|
|
365
377
|
} catch (error) {
|
|
@@ -367,17 +379,16 @@ function oneSignalSetConsentGiven(consent: boolean): Promise<void> {
|
|
|
367
379
|
}
|
|
368
380
|
});
|
|
369
381
|
}
|
|
370
|
-
|
|
371
382
|
function oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {
|
|
372
383
|
return new Promise((resolve, reject) => {
|
|
373
384
|
if (isOneSignalScriptFailed) {
|
|
374
|
-
reject();
|
|
385
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
386
|
+
return;
|
|
375
387
|
}
|
|
376
388
|
|
|
377
389
|
try {
|
|
378
390
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
379
|
-
OneSignal.setConsentRequired(requiresConsent)
|
|
380
|
-
.then((value: any) => resolve(value))
|
|
391
|
+
OneSignal.setConsentRequired(requiresConsent).then(() => resolve())
|
|
381
392
|
.catch((error: any) => reject(error));
|
|
382
393
|
});
|
|
383
394
|
} catch (error) {
|
|
@@ -385,17 +396,16 @@ function oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {
|
|
|
385
396
|
}
|
|
386
397
|
});
|
|
387
398
|
}
|
|
388
|
-
|
|
389
399
|
function slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {
|
|
390
400
|
return new Promise((resolve, reject) => {
|
|
391
401
|
if (isOneSignalScriptFailed) {
|
|
392
|
-
reject();
|
|
402
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
403
|
+
return;
|
|
393
404
|
}
|
|
394
405
|
|
|
395
406
|
try {
|
|
396
407
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
397
|
-
OneSignal.Slidedown.promptPush(options)
|
|
398
|
-
.then((value: any) => resolve(value))
|
|
408
|
+
OneSignal.Slidedown.promptPush(options).then(() => resolve())
|
|
399
409
|
.catch((error: any) => reject(error));
|
|
400
410
|
});
|
|
401
411
|
} catch (error) {
|
|
@@ -403,17 +413,16 @@ function slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {
|
|
|
403
413
|
}
|
|
404
414
|
});
|
|
405
415
|
}
|
|
406
|
-
|
|
407
416
|
function slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<void> {
|
|
408
417
|
return new Promise((resolve, reject) => {
|
|
409
418
|
if (isOneSignalScriptFailed) {
|
|
410
|
-
reject();
|
|
419
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
420
|
+
return;
|
|
411
421
|
}
|
|
412
422
|
|
|
413
423
|
try {
|
|
414
424
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
415
|
-
OneSignal.Slidedown.promptPushCategories(options)
|
|
416
|
-
.then((value: any) => resolve(value))
|
|
425
|
+
OneSignal.Slidedown.promptPushCategories(options).then(() => resolve())
|
|
417
426
|
.catch((error: any) => reject(error));
|
|
418
427
|
});
|
|
419
428
|
} catch (error) {
|
|
@@ -421,17 +430,16 @@ function slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<voi
|
|
|
421
430
|
}
|
|
422
431
|
});
|
|
423
432
|
}
|
|
424
|
-
|
|
425
433
|
function slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {
|
|
426
434
|
return new Promise((resolve, reject) => {
|
|
427
435
|
if (isOneSignalScriptFailed) {
|
|
428
|
-
reject();
|
|
436
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
437
|
+
return;
|
|
429
438
|
}
|
|
430
439
|
|
|
431
440
|
try {
|
|
432
441
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
433
|
-
OneSignal.Slidedown.promptSms(options)
|
|
434
|
-
.then((value: any) => resolve(value))
|
|
442
|
+
OneSignal.Slidedown.promptSms(options).then(() => resolve())
|
|
435
443
|
.catch((error: any) => reject(error));
|
|
436
444
|
});
|
|
437
445
|
} catch (error) {
|
|
@@ -439,17 +447,16 @@ function slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {
|
|
|
439
447
|
}
|
|
440
448
|
});
|
|
441
449
|
}
|
|
442
|
-
|
|
443
450
|
function slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {
|
|
444
451
|
return new Promise((resolve, reject) => {
|
|
445
452
|
if (isOneSignalScriptFailed) {
|
|
446
|
-
reject();
|
|
453
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
454
|
+
return;
|
|
447
455
|
}
|
|
448
456
|
|
|
449
457
|
try {
|
|
450
458
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
451
|
-
OneSignal.Slidedown.promptEmail(options)
|
|
452
|
-
.then((value: any) => resolve(value))
|
|
459
|
+
OneSignal.Slidedown.promptEmail(options).then(() => resolve())
|
|
453
460
|
.catch((error: any) => reject(error));
|
|
454
461
|
});
|
|
455
462
|
} catch (error) {
|
|
@@ -457,17 +464,16 @@ function slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {
|
|
|
457
464
|
}
|
|
458
465
|
});
|
|
459
466
|
}
|
|
460
|
-
|
|
461
467
|
function slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void> {
|
|
462
468
|
return new Promise((resolve, reject) => {
|
|
463
469
|
if (isOneSignalScriptFailed) {
|
|
464
|
-
reject();
|
|
470
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
471
|
+
return;
|
|
465
472
|
}
|
|
466
473
|
|
|
467
474
|
try {
|
|
468
475
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
469
|
-
OneSignal.Slidedown.promptSmsAndEmail(options)
|
|
470
|
-
.then((value: any) => resolve(value))
|
|
476
|
+
OneSignal.Slidedown.promptSmsAndEmail(options).then(() => resolve())
|
|
471
477
|
.catch((error: any) => reject(error));
|
|
472
478
|
});
|
|
473
479
|
} catch (error) {
|
|
@@ -475,29 +481,30 @@ function slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void>
|
|
|
475
481
|
}
|
|
476
482
|
});
|
|
477
483
|
}
|
|
478
|
-
|
|
479
484
|
function slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
485
|
+
|
|
480
486
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
481
|
-
OneSignal.Slidedown.addEventListener(event, listener)
|
|
487
|
+
OneSignal.Slidedown.addEventListener(event, listener);
|
|
482
488
|
});
|
|
489
|
+
|
|
483
490
|
}
|
|
484
|
-
|
|
485
491
|
function slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
492
|
+
|
|
486
493
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
487
|
-
OneSignal.Slidedown.removeEventListener(event, listener)
|
|
494
|
+
OneSignal.Slidedown.removeEventListener(event, listener);
|
|
488
495
|
});
|
|
496
|
+
|
|
489
497
|
}
|
|
490
|
-
|
|
491
498
|
function notificationsSetDefaultUrl(url: string): Promise<void> {
|
|
492
499
|
return new Promise((resolve, reject) => {
|
|
493
500
|
if (isOneSignalScriptFailed) {
|
|
494
|
-
reject();
|
|
501
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
502
|
+
return;
|
|
495
503
|
}
|
|
496
504
|
|
|
497
505
|
try {
|
|
498
506
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
499
|
-
OneSignal.Notifications.setDefaultUrl(url)
|
|
500
|
-
.then((value: any) => resolve(value))
|
|
507
|
+
OneSignal.Notifications.setDefaultUrl(url).then(() => resolve())
|
|
501
508
|
.catch((error: any) => reject(error));
|
|
502
509
|
});
|
|
503
510
|
} catch (error) {
|
|
@@ -505,17 +512,16 @@ function notificationsSetDefaultUrl(url: string): Promise<void> {
|
|
|
505
512
|
}
|
|
506
513
|
});
|
|
507
514
|
}
|
|
508
|
-
|
|
509
515
|
function notificationsSetDefaultTitle(title: string): Promise<void> {
|
|
510
516
|
return new Promise((resolve, reject) => {
|
|
511
517
|
if (isOneSignalScriptFailed) {
|
|
512
|
-
reject();
|
|
518
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
519
|
+
return;
|
|
513
520
|
}
|
|
514
521
|
|
|
515
522
|
try {
|
|
516
523
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
517
|
-
OneSignal.Notifications.setDefaultTitle(title)
|
|
518
|
-
.then((value: any) => resolve(value))
|
|
524
|
+
OneSignal.Notifications.setDefaultTitle(title).then(() => resolve())
|
|
519
525
|
.catch((error: any) => reject(error));
|
|
520
526
|
});
|
|
521
527
|
} catch (error) {
|
|
@@ -523,17 +529,16 @@ function notificationsSetDefaultTitle(title: string): Promise<void> {
|
|
|
523
529
|
}
|
|
524
530
|
});
|
|
525
531
|
}
|
|
526
|
-
|
|
527
532
|
function notificationsRequestPermission(): Promise<void> {
|
|
528
533
|
return new Promise((resolve, reject) => {
|
|
529
534
|
if (isOneSignalScriptFailed) {
|
|
530
|
-
reject();
|
|
535
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
536
|
+
return;
|
|
531
537
|
}
|
|
532
538
|
|
|
533
539
|
try {
|
|
534
540
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
535
|
-
OneSignal.Notifications.requestPermission()
|
|
536
|
-
.then((value: any) => resolve(value))
|
|
541
|
+
OneSignal.Notifications.requestPermission().then(() => resolve())
|
|
537
542
|
.catch((error: any) => reject(error));
|
|
538
543
|
});
|
|
539
544
|
} catch (error) {
|
|
@@ -541,29 +546,30 @@ function notificationsRequestPermission(): Promise<void> {
|
|
|
541
546
|
}
|
|
542
547
|
});
|
|
543
548
|
}
|
|
544
|
-
|
|
545
549
|
function notificationsAddEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {
|
|
550
|
+
|
|
546
551
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
547
|
-
OneSignal.Notifications.addEventListener(event, listener)
|
|
552
|
+
OneSignal.Notifications.addEventListener(event, listener);
|
|
548
553
|
});
|
|
554
|
+
|
|
549
555
|
}
|
|
550
|
-
|
|
551
556
|
function notificationsRemoveEventListener<K extends NotificationEventName>(event: K, listener: (obj: NotificationEventTypeMap[K]) => void): void {
|
|
557
|
+
|
|
552
558
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
553
|
-
OneSignal.Notifications.removeEventListener(event, listener)
|
|
559
|
+
OneSignal.Notifications.removeEventListener(event, listener);
|
|
554
560
|
});
|
|
561
|
+
|
|
555
562
|
}
|
|
556
|
-
|
|
557
563
|
function sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void> {
|
|
558
564
|
return new Promise((resolve, reject) => {
|
|
559
565
|
if (isOneSignalScriptFailed) {
|
|
560
|
-
reject();
|
|
566
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
567
|
+
return;
|
|
561
568
|
}
|
|
562
569
|
|
|
563
570
|
try {
|
|
564
571
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
565
|
-
OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
|
|
566
|
-
.then((value: any) => resolve(value))
|
|
572
|
+
OneSignal.Session.sendOutcome(outcomeName, outcomeWeight).then(() => resolve())
|
|
567
573
|
.catch((error: any) => reject(error));
|
|
568
574
|
});
|
|
569
575
|
} catch (error) {
|
|
@@ -571,17 +577,16 @@ function sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promis
|
|
|
571
577
|
}
|
|
572
578
|
});
|
|
573
579
|
}
|
|
574
|
-
|
|
575
580
|
function sessionSendUniqueOutcome(outcomeName: string): Promise<void> {
|
|
576
581
|
return new Promise((resolve, reject) => {
|
|
577
582
|
if (isOneSignalScriptFailed) {
|
|
578
|
-
reject();
|
|
583
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
584
|
+
return;
|
|
579
585
|
}
|
|
580
586
|
|
|
581
587
|
try {
|
|
582
588
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
583
|
-
OneSignal.Session.sendUniqueOutcome(outcomeName)
|
|
584
|
-
.then((value: any) => resolve(value))
|
|
589
|
+
OneSignal.Session.sendUniqueOutcome(outcomeName).then(() => resolve())
|
|
585
590
|
.catch((error: any) => reject(error));
|
|
586
591
|
});
|
|
587
592
|
} catch (error) {
|
|
@@ -589,89 +594,135 @@ function sessionSendUniqueOutcome(outcomeName: string): Promise<void> {
|
|
|
589
594
|
}
|
|
590
595
|
});
|
|
591
596
|
}
|
|
592
|
-
|
|
593
597
|
function userAddAlias(label: string, id: string): void {
|
|
598
|
+
|
|
594
599
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
595
|
-
OneSignal.User.addAlias(label, id)
|
|
600
|
+
OneSignal.User.addAlias(label, id);
|
|
596
601
|
});
|
|
602
|
+
|
|
597
603
|
}
|
|
598
|
-
|
|
599
604
|
function userAddAliases(aliases: { [key: string]: string }): void {
|
|
605
|
+
|
|
600
606
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
601
|
-
OneSignal.User.addAliases(aliases)
|
|
607
|
+
OneSignal.User.addAliases(aliases);
|
|
602
608
|
});
|
|
609
|
+
|
|
603
610
|
}
|
|
604
|
-
|
|
605
611
|
function userRemoveAlias(label: string): void {
|
|
612
|
+
|
|
606
613
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
607
|
-
OneSignal.User.removeAlias(label)
|
|
614
|
+
OneSignal.User.removeAlias(label);
|
|
608
615
|
});
|
|
616
|
+
|
|
609
617
|
}
|
|
610
|
-
|
|
611
618
|
function userRemoveAliases(labels: string[]): void {
|
|
619
|
+
|
|
612
620
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
613
|
-
OneSignal.User.removeAliases(labels)
|
|
621
|
+
OneSignal.User.removeAliases(labels);
|
|
614
622
|
});
|
|
623
|
+
|
|
615
624
|
}
|
|
616
|
-
|
|
617
625
|
function userAddEmail(email: string): void {
|
|
626
|
+
|
|
618
627
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
619
|
-
OneSignal.User.addEmail(email)
|
|
628
|
+
OneSignal.User.addEmail(email);
|
|
620
629
|
});
|
|
630
|
+
|
|
621
631
|
}
|
|
622
|
-
|
|
623
632
|
function userRemoveEmail(email: string): void {
|
|
633
|
+
|
|
624
634
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
625
|
-
OneSignal.User.removeEmail(email)
|
|
635
|
+
OneSignal.User.removeEmail(email);
|
|
626
636
|
});
|
|
637
|
+
|
|
627
638
|
}
|
|
628
|
-
|
|
629
639
|
function userAddSms(smsNumber: string): void {
|
|
640
|
+
|
|
630
641
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
631
|
-
OneSignal.User.addSms(smsNumber)
|
|
642
|
+
OneSignal.User.addSms(smsNumber);
|
|
632
643
|
});
|
|
644
|
+
|
|
633
645
|
}
|
|
634
|
-
|
|
635
646
|
function userRemoveSms(smsNumber: string): void {
|
|
647
|
+
|
|
636
648
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
637
|
-
OneSignal.User.removeSms(smsNumber)
|
|
649
|
+
OneSignal.User.removeSms(smsNumber);
|
|
638
650
|
});
|
|
651
|
+
|
|
639
652
|
}
|
|
640
|
-
|
|
641
653
|
function userAddTag(key: string, value: string): void {
|
|
654
|
+
|
|
642
655
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
643
|
-
OneSignal.User.addTag(key, value)
|
|
656
|
+
OneSignal.User.addTag(key, value);
|
|
644
657
|
});
|
|
658
|
+
|
|
645
659
|
}
|
|
646
|
-
|
|
647
660
|
function userAddTags(tags: { [key: string]: string }): void {
|
|
661
|
+
|
|
648
662
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
649
|
-
OneSignal.User.addTags(tags)
|
|
663
|
+
OneSignal.User.addTags(tags);
|
|
650
664
|
});
|
|
665
|
+
|
|
651
666
|
}
|
|
652
|
-
|
|
653
667
|
function userRemoveTag(key: string): void {
|
|
668
|
+
|
|
654
669
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
655
|
-
OneSignal.User.removeTag(key)
|
|
670
|
+
OneSignal.User.removeTag(key);
|
|
656
671
|
});
|
|
672
|
+
|
|
657
673
|
}
|
|
658
|
-
|
|
659
674
|
function userRemoveTags(keys: string[]): void {
|
|
675
|
+
|
|
660
676
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
661
|
-
OneSignal.User.removeTags(keys)
|
|
677
|
+
OneSignal.User.removeTags(keys);
|
|
662
678
|
});
|
|
679
|
+
|
|
680
|
+
}
|
|
681
|
+
function userGetTags(): { [key: string]: string } {
|
|
682
|
+
let retVal: { [key: string]: string };
|
|
683
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
684
|
+
retVal = OneSignal.User.getTags();
|
|
685
|
+
});
|
|
686
|
+
return retVal;
|
|
687
|
+
}
|
|
688
|
+
function userAddEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {
|
|
689
|
+
|
|
690
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
691
|
+
OneSignal.User.addEventListener(event, listener);
|
|
692
|
+
});
|
|
693
|
+
|
|
694
|
+
}
|
|
695
|
+
function userRemoveEventListener(event: 'change', listener: (change: UserChangeEvent) => void): void {
|
|
696
|
+
|
|
697
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
698
|
+
OneSignal.User.removeEventListener(event, listener);
|
|
699
|
+
});
|
|
700
|
+
|
|
701
|
+
}
|
|
702
|
+
function userSetLanguage(language: string): void {
|
|
703
|
+
|
|
704
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
705
|
+
OneSignal.User.setLanguage(language);
|
|
706
|
+
});
|
|
707
|
+
|
|
708
|
+
}
|
|
709
|
+
function userGetLanguage(): string {
|
|
710
|
+
let retVal: string;
|
|
711
|
+
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
712
|
+
retVal = OneSignal.User.getLanguage();
|
|
713
|
+
});
|
|
714
|
+
return retVal;
|
|
663
715
|
}
|
|
664
|
-
|
|
665
716
|
function pushSubscriptionOptIn(): Promise<void> {
|
|
666
717
|
return new Promise((resolve, reject) => {
|
|
667
718
|
if (isOneSignalScriptFailed) {
|
|
668
|
-
reject();
|
|
719
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
720
|
+
return;
|
|
669
721
|
}
|
|
670
722
|
|
|
671
723
|
try {
|
|
672
724
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
673
|
-
OneSignal.User.PushSubscription.optIn()
|
|
674
|
-
.then((value: any) => resolve(value))
|
|
725
|
+
OneSignal.User.PushSubscription.optIn().then(() => resolve())
|
|
675
726
|
.catch((error: any) => reject(error));
|
|
676
727
|
});
|
|
677
728
|
} catch (error) {
|
|
@@ -679,17 +730,16 @@ function pushSubscriptionOptIn(): Promise<void> {
|
|
|
679
730
|
}
|
|
680
731
|
});
|
|
681
732
|
}
|
|
682
|
-
|
|
683
733
|
function pushSubscriptionOptOut(): Promise<void> {
|
|
684
734
|
return new Promise((resolve, reject) => {
|
|
685
735
|
if (isOneSignalScriptFailed) {
|
|
686
|
-
reject();
|
|
736
|
+
reject(new Error('OneSignal script failed to load.'));
|
|
737
|
+
return;
|
|
687
738
|
}
|
|
688
739
|
|
|
689
740
|
try {
|
|
690
741
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
691
|
-
OneSignal.User.PushSubscription.optOut()
|
|
692
|
-
.then((value: any) => resolve(value))
|
|
742
|
+
OneSignal.User.PushSubscription.optOut().then(() => resolve())
|
|
693
743
|
.catch((error: any) => reject(error));
|
|
694
744
|
});
|
|
695
745
|
} catch (error) {
|
|
@@ -697,28 +747,31 @@ function pushSubscriptionOptOut(): Promise<void> {
|
|
|
697
747
|
}
|
|
698
748
|
});
|
|
699
749
|
}
|
|
700
|
-
|
|
701
750
|
function pushSubscriptionAddEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
751
|
+
|
|
702
752
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
703
|
-
OneSignal.User.PushSubscription.addEventListener(event, listener)
|
|
753
|
+
OneSignal.User.PushSubscription.addEventListener(event, listener);
|
|
704
754
|
});
|
|
755
|
+
|
|
705
756
|
}
|
|
706
|
-
|
|
707
757
|
function pushSubscriptionRemoveEventListener(event: 'change', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
758
|
+
|
|
708
759
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
709
|
-
OneSignal.User.PushSubscription.removeEventListener(event, listener)
|
|
760
|
+
OneSignal.User.PushSubscription.removeEventListener(event, listener);
|
|
710
761
|
});
|
|
762
|
+
|
|
711
763
|
}
|
|
712
|
-
|
|
713
764
|
function debugSetLogLevel(logLevel: string): void {
|
|
765
|
+
|
|
714
766
|
window.OneSignalDeferred?.push((OneSignal: IOneSignalOneSignal) => {
|
|
715
|
-
OneSignal.Debug.setLogLevel(logLevel)
|
|
767
|
+
OneSignal.Debug.setLogLevel(logLevel);
|
|
716
768
|
});
|
|
769
|
+
|
|
717
770
|
}
|
|
718
771
|
const PushSubscriptionNamespace: IOneSignalPushSubscription = {
|
|
719
|
-
get id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id },
|
|
720
|
-
get token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token },
|
|
721
|
-
get optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn },
|
|
772
|
+
get id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id; },
|
|
773
|
+
get token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token; },
|
|
774
|
+
get optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn; },
|
|
722
775
|
optIn: pushSubscriptionOptIn,
|
|
723
776
|
optOut: pushSubscriptionOptOut,
|
|
724
777
|
addEventListener: pushSubscriptionAddEventListener,
|
|
@@ -726,6 +779,8 @@ const PushSubscriptionNamespace: IOneSignalPushSubscription = {
|
|
|
726
779
|
};
|
|
727
780
|
|
|
728
781
|
const UserNamespace: IOneSignalUser = {
|
|
782
|
+
get onesignalId(): string | undefined { return window.OneSignal?.User?.onesignalId; },
|
|
783
|
+
get externalId(): string | undefined { return window.OneSignal?.User?.externalId; },
|
|
729
784
|
addAlias: userAddAlias,
|
|
730
785
|
addAliases: userAddAliases,
|
|
731
786
|
removeAlias: userRemoveAlias,
|
|
@@ -738,6 +793,11 @@ const UserNamespace: IOneSignalUser = {
|
|
|
738
793
|
addTags: userAddTags,
|
|
739
794
|
removeTag: userRemoveTag,
|
|
740
795
|
removeTags: userRemoveTags,
|
|
796
|
+
getTags: userGetTags,
|
|
797
|
+
addEventListener: userAddEventListener,
|
|
798
|
+
removeEventListener: userRemoveEventListener,
|
|
799
|
+
setLanguage: userSetLanguage,
|
|
800
|
+
getLanguage: userGetLanguage,
|
|
741
801
|
PushSubscription: PushSubscriptionNamespace,
|
|
742
802
|
};
|
|
743
803
|
|
package/package.json
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-onesignal",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "React OneSignal Module: Make it easy to integrate OneSignal with your React App!",
|
|
5
5
|
"author": "rgomezp",
|
|
6
|
-
"contributors": [
|
|
6
|
+
"contributors": [
|
|
7
|
+
{
|
|
8
|
+
"name": "Rodrigo Gomez-Palacio"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "Pedro Bini"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "Graham Marlow"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
7
17
|
"homepage": "https://onesignal.com",
|
|
8
18
|
"repository": "https://github.com/OneSignal/react-onesignal.git",
|
|
9
19
|
"license": "MIT",
|