Fix calling missing actions too early (#2066)
This commit is contained in:
parent
957819cff4
commit
c3a3597b7d
@ -1,10 +1,11 @@
|
|||||||
import {
|
import {
|
||||||
addActionHandler, getGlobal, setGlobal, getActions,
|
addActionHandler, getGlobal, setGlobal, getActions,
|
||||||
} from '../../index';
|
} from '../../index';
|
||||||
|
import { addCallback } from '../../../lib/teact/teactn';
|
||||||
|
|
||||||
import type { ApiChat, ApiMessage } from '../../../api/types';
|
import type { ApiChat, ApiMessage } from '../../../api/types';
|
||||||
import { MAIN_THREAD_ID } from '../../../api/types';
|
import { MAIN_THREAD_ID } from '../../../api/types';
|
||||||
import type { Thread } from '../../types';
|
import type { GlobalState, Thread } from '../../types';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
DEBUG, MESSAGE_LIST_SLICE, SERVICE_NOTIFICATIONS_USER_ID,
|
DEBUG, MESSAGE_LIST_SLICE, SERVICE_NOTIFICATIONS_USER_ID,
|
||||||
@ -205,3 +206,15 @@ function loadTopMessages(chat: ApiChat) {
|
|||||||
limit: MESSAGE_LIST_SLICE,
|
limit: MESSAGE_LIST_SLICE,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let previousGlobal: GlobalState | undefined;
|
||||||
|
// RAF can be unreliable when device goes into sleep mode, so sync logic is handled outside any component
|
||||||
|
addCallback((global: GlobalState) => {
|
||||||
|
const { connectionState, authState } = global;
|
||||||
|
if (previousGlobal?.connectionState === connectionState && previousGlobal?.authState === authState) return;
|
||||||
|
if (connectionState === 'connectionStateReady' && authState === 'authorizationStateReady') {
|
||||||
|
getActions().sync();
|
||||||
|
}
|
||||||
|
|
||||||
|
previousGlobal = global;
|
||||||
|
});
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import { initCache, loadCache } from './cache';
|
|||||||
import { cloneDeep } from '../util/iteratees';
|
import { cloneDeep } from '../util/iteratees';
|
||||||
import { updatePasscodeSettings } from './reducers';
|
import { updatePasscodeSettings } from './reducers';
|
||||||
import { clearStoredSession } from '../util/sessions';
|
import { clearStoredSession } from '../util/sessions';
|
||||||
import './sync';
|
|
||||||
|
|
||||||
initCache();
|
initCache();
|
||||||
|
|
||||||
|
|||||||
@ -1,15 +0,0 @@
|
|||||||
import { getActions } from '.';
|
|
||||||
import { addCallback, getGlobal } from '../lib/teact/teactn';
|
|
||||||
import type { GlobalState } from './types';
|
|
||||||
|
|
||||||
let previousGlobal = getGlobal();
|
|
||||||
// RAF can be unreliable when device goes into sleep mode, so sync logic is handled outside any component
|
|
||||||
addCallback((global: GlobalState) => {
|
|
||||||
const { connectionState, authState } = global;
|
|
||||||
if (previousGlobal.connectionState === connectionState && previousGlobal.authState === authState) return;
|
|
||||||
if (connectionState === 'connectionStateReady' && authState === 'authorizationStateReady') {
|
|
||||||
getActions().sync();
|
|
||||||
}
|
|
||||||
|
|
||||||
previousGlobal = global;
|
|
||||||
});
|
|
||||||
@ -72,7 +72,7 @@ if (IS_SERVICE_WORKER_SUPPORTED) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!IS_IOS && !IS_ANDROID && !IS_TEST) {
|
if (!IS_IOS && !IS_ANDROID && !IS_TEST) {
|
||||||
getActions().showDialog({ data: { message: 'SERVICE_WORKER_DISABLED', hasErrorKey: true } });
|
getActions().showDialog?.({ data: { message: 'SERVICE_WORKER_DISABLED', hasErrorKey: true } });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user