When notification type filtered, ignore live updates for it (#7101)
Fix #5625
This commit is contained in:
		
					parent
					
						
							
								14d86eb0d0
							
						
					
				
			
			
				commit
				
					
						9e45b051cf
					
				
			
		
					 1 changed files with 25 additions and 14 deletions
				
			
		|  | @ -10,6 +10,7 @@ import { | |||
| import { defineMessages } from 'react-intl'; | ||||
| 
 | ||||
| export const NOTIFICATIONS_UPDATE      = 'NOTIFICATIONS_UPDATE'; | ||||
| export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP'; | ||||
| 
 | ||||
| export const NOTIFICATIONS_EXPAND_REQUEST = 'NOTIFICATIONS_EXPAND_REQUEST'; | ||||
| export const NOTIFICATIONS_EXPAND_SUCCESS = 'NOTIFICATIONS_EXPAND_SUCCESS'; | ||||
|  | @ -39,10 +40,13 @@ const unescapeHTML = (html) => { | |||
| 
 | ||||
| export function updateNotifications(notification, intlMessages, intlLocale) { | ||||
|   return (dispatch, getState) => { | ||||
|     const showInColumn = getState().getIn(['settings', 'notifications', 'shows', notification.type], true); | ||||
|     const showAlert    = getState().getIn(['settings', 'notifications', 'alerts', notification.type], true); | ||||
|     const playSound    = getState().getIn(['settings', 'notifications', 'sounds', notification.type], true); | ||||
| 
 | ||||
|     if (showInColumn) { | ||||
|       dispatch(importFetchedAccount(notification.account)); | ||||
| 
 | ||||
|       if (notification.status) { | ||||
|         dispatch(importFetchedStatus(notification.status)); | ||||
|       } | ||||
|  | @ -54,6 +58,12 @@ export function updateNotifications(notification, intlMessages, intlLocale) { | |||
|       }); | ||||
| 
 | ||||
|       fetchRelatedRelationships(dispatch, [notification]); | ||||
|     } else if (playSound) { | ||||
|       dispatch({ | ||||
|         type: NOTIFICATIONS_UPDATE_NOOP, | ||||
|         meta: { sound: 'boop' }, | ||||
|       }); | ||||
|     } | ||||
| 
 | ||||
|     // Desktop notifications
 | ||||
|     if (typeof window.Notification !== 'undefined' && showAlert) { | ||||
|  | @ -61,6 +71,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) { | |||
|       const body  = (notification.status && notification.status.spoiler_text.length > 0) ? notification.status.spoiler_text : unescapeHTML(notification.status ? notification.status.content : ''); | ||||
| 
 | ||||
|       const notify = new Notification(title, { body, icon: notification.account.avatar, tag: notification.id }); | ||||
| 
 | ||||
|       notify.addEventListener('click', () => { | ||||
|         window.focus(); | ||||
|         notify.close(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue