import core from '../chat/core'; import {Conversation} from '../chat/interfaces'; import BaseNotifications from '../chat/notifications'; //tslint:disable-line:match-default-export-name declare global { const NativeNotification: { notify(notify: boolean, title: string, text: string, icon: string, sound: string | null, data: string): void requestPermission(): void }; } document.addEventListener('notification-clicked', (e: Event) => { const conv = core.conversations.byKey((e).detail.data); if(conv !== undefined) conv.show(); }); export default class Notifications extends BaseNotifications { async notify(conversation: Conversation, title: string, body: string, icon: string, sound: string): Promise { if(!this.shouldNotify(conversation)) return; NativeNotification.notify(core.state.settings.notifications && this.isInBackground, title, body, icon, core.state.settings.playSound ? sound : null, conversation.key); //tslint:disable-line:no-null-keyword } async requestPermission(): Promise { return NativeNotification.requestPermission(); } }