/* * Copyright 2014-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ let granted = false; export default { requestPermissions() { if ('Notification' in window) { granted = (window.Notification.permission === 'granted'); if (!granted && window.Notification.permission !== 'denied') { window.Notification.requestPermission(permission => granted = (permission === 'granted')); } } }, notify(title, options) { if (granted) { const note = new window.Notification(title, options); if (options.url !== null) { note.onclick = () => { window.focus(); window.open(options.url, '_self'); }; } if (options.timeout > 0) { note.onshow = () => setTimeout(() => note.close(), options.timeout); } } } }