enhance(sw): If receiving a push notification issued more than a day, ignore it. (#8980)
* enhance(sw): ignore old push notification
* ✌️
* 半日
* !==
* 1日
			
			
This commit is contained in:
		
							parent
							
								
									7f808eaf42
								
							
						
					
					
						commit
						83ebe79a3f
					
				
					 3 changed files with 7 additions and 1 deletions
				
			
		|  | @ -64,6 +64,7 @@ export async function pushNotification<T extends keyof pushNotificationsTypes>(u | |||
| 			type, | ||||
| 			body: type === 'notification' ? truncateNotification(body as Packed<'Notification'>) : body, | ||||
| 			userId, | ||||
| 			dateTime: (new Date()).getTime(), | ||||
| 		}), { | ||||
| 			proxy: config.proxy, | ||||
| 		}).catch((err: any) => { | ||||
|  |  | |||
|  | @ -42,8 +42,12 @@ self.addEventListener('push', ev => { | |||
| 			// case 'driveFileCreated':
 | ||||
| 			case 'notification': | ||||
| 			case 'unreadMessagingMessage': | ||||
| 				// 1日以上経過している場合は無視
 | ||||
| 				if ((new Date()).getTime() - data.dateTime > 1000 * 60 * 60 * 24) break; | ||||
| 
 | ||||
| 				// クライアントがあったらストリームに接続しているということなので通知しない
 | ||||
| 				if (clients.length != 0) return; | ||||
| 				if (clients.length !== 0) break; | ||||
| 
 | ||||
| 				return createNotification(data); | ||||
| 			case 'readAllNotifications': | ||||
| 				for (const n of await self.registration.getNotifications()) { | ||||
|  |  | |||
|  | @ -24,6 +24,7 @@ export type pushNotificationData<K extends keyof pushNotificationDataSourceMap> | |||
| 	type: K; | ||||
| 	body: pushNotificationDataSourceMap[K]; | ||||
| 	userId: string; | ||||
| 	dateTime: number; | ||||
| }; | ||||
| 
 | ||||
| export type pushNotificationDataMap = { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue