auth-sync.js 717 B

12345678910111213141516171819202122232425
  1. import misago from 'misago/index';
  2. import { patch } from 'misago/reducers/auth';
  3. import ajax from 'misago/services/ajax';
  4. import snackbar from 'misago/services/snackbar';
  5. import store from 'misago/services/store';
  6. const AUTH_SYNC_RATE = 45; // sync user with backend every 45 seconds
  7. export default function initializer(context) {
  8. if (context.get('isAuthenticated')) {
  9. window.setInterval(function() {
  10. ajax.get(context.get('AUTH_API')).then(function(data) {
  11. store.dispatch(patch(data));
  12. }, function(rejection) {
  13. snackbar.apiError(rejection);
  14. });
  15. }, AUTH_SYNC_RATE * 1000);
  16. }
  17. }
  18. misago.addInitializer({
  19. name: 'auth-sync',
  20. initializer: initializer,
  21. after: 'auth'
  22. });