Fix timeline markers not working on Chrome (#13887)

* Periodically save timeline markers

This saves timeline markers immediately upon message arrival, but not more
than once every 5 minutes.

This does not change how the markers are saved on closing the window,
except that it avoids submitting them if there is no need for it.

* Use the Fetch API when possible instead of XHR on window unload
This commit is contained in:
ThibG
2020-05-29 16:14:16 +02:00
committed by GitHub
parent 8bbc81c71e
commit 5aff2a6957
6 changed files with 115 additions and 24 deletions

View File

@ -35,6 +35,7 @@ import identity_proofs from './identity_proofs';
import trends from './trends';
import missed_updates from './missed_updates';
import announcements from './announcements';
import markers from './markers';
const reducers = {
announcements,
@ -73,6 +74,7 @@ const reducers = {
polls,
trends,
missed_updates,
markers,
};
export default combineReducers(reducers);

View File

@ -0,0 +1,25 @@
import {
MARKERS_SUBMIT_SUCCESS,
} from '../actions/notifications';
const initialState = ImmutableMap({
home: '0',
notifications: '0',
});
import { Map as ImmutableMap } from 'immutable';
export default function markers(state = initialState, action) {
switch(action.type) {
case MARKERS_SUBMIT_SUCCESS:
if (action.home) {
state = state.set('home', action.home);
}
if (action.notifications) {
state = state.set('notifications', action.notifications);
}
return state;
default:
return state;
}
};