Delay workbox import (#20376)
This commit is contained in:
		
							parent
							
								
									19a8563905
								
							
						
					
					
						commit
						53d26cfc1c
					
				
					 1 changed files with 12 additions and 15 deletions
				
			
		|  | @ -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()); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue