onesignal-web-sdk
Version:
Web push notifications from OneSignal.
36 lines (29 loc) • 1.2 kB
text/typescript
import OneSignalError from "./OneSignalError";
export enum PushPermissionNotGrantedErrorReason {
Blocked,
Dismissed,
Default
}
export default class PushPermissionNotGrantedError extends OneSignalError {
reason: PushPermissionNotGrantedErrorReason;
constructor(reason: PushPermissionNotGrantedErrorReason) {
switch (reason) {
case PushPermissionNotGrantedErrorReason.Dismissed:
super('The user dismissed the permission prompt.');
break;
case PushPermissionNotGrantedErrorReason.Blocked:
super('Notification permissions are blocked.');
break;
case PushPermissionNotGrantedErrorReason.Default:
super('Notification permissions have not been granted yet.');
break;
}
this.reason = reason;
/**
* Important! Required to make sure the correct error type is detected during instanceof checks.
* Same applies to all derived classes.
* https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
*/
Object.setPrototypeOf(this, PushPermissionNotGrantedError.prototype);
}
}