[Glitch] Fix spurious error and incorrect state change when adding a reaction twice
Port c06d2ff437 to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
			
			
This commit is contained in:
		
							parent
							
								
									3d9310bf3f
								
							
						
					
					
						commit
						98d5ab6be9
					
				
					 2 changed files with 18 additions and 4 deletions
				
			
		|  | @ -56,12 +56,27 @@ export const updateAnnouncements = announcement => ({ | |||
| }); | ||||
| 
 | ||||
| export const addReaction = (announcementId, name) => (dispatch, getState) => { | ||||
|   dispatch(addReactionRequest(announcementId, name)); | ||||
|   const announcement = getState().getIn(['announcements', 'items']).find(x => x.get('id') === announcementId); | ||||
| 
 | ||||
|   let alreadyAdded = false; | ||||
| 
 | ||||
|   if (announcement) { | ||||
|     const reaction = announcement.get('reactions').find(x => x.get('name') === name); | ||||
|     if (reaction && reaction.get('me')) { | ||||
|       alreadyAdded = true; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   if (!alreadyAdded) { | ||||
|     dispatch(addReactionRequest(announcementId, name, alreadyAdded)); | ||||
|   } | ||||
| 
 | ||||
|   api(getState).put(`/api/v1/announcements/${announcementId}/reactions/${name}`).then(() => { | ||||
|     dispatch(addReactionSuccess(announcementId, name)); | ||||
|     dispatch(addReactionSuccess(announcementId, name, alreadyAdded)); | ||||
|   }).catch(err => { | ||||
|     if (!alreadyAdded) { | ||||
|       dispatch(addReactionFail(announcementId, name, err)); | ||||
|     } | ||||
|   }); | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -38,7 +38,6 @@ | |||
| 
 | ||||
| .announcements { | ||||
|   background: lighten($ui-base-color, 8%); | ||||
|   border-top: 1px solid $ui-base-color; | ||||
|   font-size: 13px; | ||||
|   display: flex; | ||||
|   align-items: flex-end; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue