Delay workbox import (#20376)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							19a8563905
						
					
				
				
					commit
					53d26cfc1c
				
			@@ -2,6 +2,7 @@ import React from 'react';
 | 
				
			|||||||
import ReactDOM from 'react-dom';
 | 
					import ReactDOM from 'react-dom';
 | 
				
			||||||
import { setupBrowserNotifications } from 'mastodon/actions/notifications';
 | 
					import { setupBrowserNotifications } from 'mastodon/actions/notifications';
 | 
				
			||||||
import Mastodon, { store } from 'mastodon/containers/mastodon';
 | 
					import Mastodon, { store } from 'mastodon/containers/mastodon';
 | 
				
			||||||
 | 
					import { me } from 'mastodon/initial_state';
 | 
				
			||||||
import ready from 'mastodon/ready';
 | 
					import ready from 'mastodon/ready';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const perf = require('mastodon/performance');
 | 
					const perf = require('mastodon/performance');
 | 
				
			||||||
@@ -19,23 +20,19 @@ function main() {
 | 
				
			|||||||
    ReactDOM.render(<Mastodon {...props} />, mountNode);
 | 
					    ReactDOM.render(<Mastodon {...props} />, mountNode);
 | 
				
			||||||
    store.dispatch(setupBrowserNotifications());
 | 
					    store.dispatch(setupBrowserNotifications());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
 | 
					    if (process.env.NODE_ENV === 'production' && me && 'serviceWorker' in navigator) {
 | 
				
			||||||
      const [{ Workbox }, { me }] = await Promise.all([
 | 
					      const { Workbox } = await import('workbox-window');
 | 
				
			||||||
        import('workbox-window'),
 | 
					      const wb = new Workbox('/sw.js');
 | 
				
			||||||
        import('mastodon/initial_state'),
 | 
					      /** @type {ServiceWorkerRegistration} */
 | 
				
			||||||
      ]);
 | 
					      let registration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (me) {
 | 
					      try {
 | 
				
			||||||
        const wb = new Workbox('/sw.js');
 | 
					        registration = await wb.register();
 | 
				
			||||||
 | 
					      } catch (err) {
 | 
				
			||||||
        try {
 | 
					        console.error(err);
 | 
				
			||||||
          await wb.register();
 | 
					      }
 | 
				
			||||||
        } catch (err) {
 | 
					 | 
				
			||||||
          console.error(err);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (registration) {
 | 
				
			||||||
        const registerPushNotifications = await import('mastodon/actions/push_notifications');
 | 
					        const registerPushNotifications = await import('mastodon/actions/push_notifications');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        store.dispatch(registerPushNotifications.register());
 | 
					        store.dispatch(registerPushNotifications.register());
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user