M app/javascript/mastodon/actions/notifications.js => app/javascript/mastodon/actions/notifications.js +5 -0
@@ 18,6 18,7 @@ import {
importFetchedStatuses,
} from './importer';
import { submitMarkers } from './markers';
+import { register as registerPushNotifications } from './push_notifications';
import { saveSettings } from './settings';
export const NOTIFICATIONS_UPDATE = 'NOTIFICATIONS_UPDATE';
@@ 293,6 294,10 @@ export function requestBrowserPermission(callback = noOp) {
requestNotificationPermission((permission) => {
dispatch(setBrowserPermission(permission));
callback(permission);
+
+ if (permission === 'granted') {
+ dispatch(registerPushNotifications());
+ }
});
};
}
M app/javascript/mastodon/main.jsx => app/javascript/mastodon/main.jsx +1 -1
@@ 33,7 33,7 @@ function main() {
console.error(err);
}
- if (registration) {
+ if (registration && 'Notification' in window && Notification.permission === 'granted') {
const registerPushNotifications = await import('mastodon/actions/push_notifications');
store.dispatch(registerPushNotifications.register());