Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/notification-manager/src/providers/ |
Upload File : |
import { Type } from 'main.core'; import BaseProvider from './base'; import Notification from '../notification/notification'; import DesktopHelper from '../helpers/desktop'; type BrowserNotificationOptions = { title: string, options?: { body?: string, tag?: string, icon?: string, }, onclick: Function, }; export default class BrowserProvider extends BaseProvider { convertNotificationToNative(notification: Notification): BrowserNotificationOptions { const notificationOptions: BrowserNotificationOptions = { title: notification.getTitle() ? notification.getTitle() : '', options: { body: '', tag: notification.getUid(), renotify: true, }, onclick: (event: Event) => { event.preventDefault(); window.focus(); this.notificationClick(notification.getUid()); }, }; if (Type.isStringFilled(notification.getIcon())) { notificationOptions.options.icon = notification.getIcon(); } if (Type.isStringFilled(notification.getText())) { notificationOptions.options.body = notification.getText(); } return notificationOptions; } sendNotification(notificationOptions: BrowserNotificationOptions): void { if (!DesktopHelper.isRunningOnAnyDevice()) { return; } DesktopHelper.checkRunningOnThisDevice() .then(isRunningOnThisDevice => { if (isRunningOnThisDevice) { return; } const notification = new window.Notification(notificationOptions.title, notificationOptions.options); notification.onclick = notificationOptions.onclick; }); } }