[Glitch] Fix alert when failing to save timeline markers in web UI
Port 59d943e152 to glitch-soc
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
			
			
This commit is contained in:
		
							parent
							
								
									a16175645d
								
							
						
					
					
						commit
						b5134595d8
					
				| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
import api from 'flavours/glitch/util/api';
 | 
			
		||||
import { debounce } from 'lodash';
 | 
			
		||||
import compareId from 'flavours/glitch/util/compare_id';
 | 
			
		||||
import { showAlertForError } from './alerts';
 | 
			
		||||
 | 
			
		||||
export const MARKERS_FETCH_REQUEST = 'MARKERS_FETCH_REQUEST';
 | 
			
		||||
export const MARKERS_FETCH_SUCCESS = 'MARKERS_FETCH_SUCCESS';
 | 
			
		||||
| 
						 | 
				
			
			@ -29,15 +28,19 @@ export const synchronouslySubmitMarkers = () => (dispatch, getState) => {
 | 
			
		|||
      },
 | 
			
		||||
      body: JSON.stringify(params),
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return;
 | 
			
		||||
  } else if (navigator && navigator.sendBeacon) {
 | 
			
		||||
    // Failing that, we can use sendBeacon, but we have to encode the data as
 | 
			
		||||
    // FormData for DoorKeeper to recognize the token.
 | 
			
		||||
    const formData = new FormData();
 | 
			
		||||
 | 
			
		||||
    formData.append('bearer_token', accessToken);
 | 
			
		||||
 | 
			
		||||
    for (const [id, value] of Object.entries(params)) {
 | 
			
		||||
      formData.append(`${id}[last_read_id]`, value.last_read_id);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (navigator.sendBeacon('/api/v1/markers', formData)) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -85,11 +88,9 @@ const debouncedSubmitMarkers = debounce((dispatch, getState) => {
 | 
			
		|||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  api().post('/api/v1/markers', params).then(() => {
 | 
			
		||||
  api(getState).post('/api/v1/markers', params).then(() => {
 | 
			
		||||
    dispatch(submitMarkersSuccess(params));
 | 
			
		||||
  }).catch(error => {
 | 
			
		||||
    dispatch(showAlertForError(error));
 | 
			
		||||
  });
 | 
			
		||||
  }).catch(() => {});
 | 
			
		||||
}, 300000, { leading: true, trailing: true });
 | 
			
		||||
 | 
			
		||||
export function submitMarkersSuccess({ home, notifications }) {
 | 
			
		||||
| 
						 | 
				
			
			@ -102,9 +103,11 @@ export function submitMarkersSuccess({ home, notifications }) {
 | 
			
		|||
 | 
			
		||||
export function submitMarkers(params = {}) {
 | 
			
		||||
  const result = (dispatch, getState) => debouncedSubmitMarkers(dispatch, getState);
 | 
			
		||||
 | 
			
		||||
  if (params.immediate === true) {
 | 
			
		||||
    debouncedSubmitMarkers.flush();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return result;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue