ca1213c32f
Fix chat date blinking Fix displaying sent messages to new dialog Scroll to date bubble if message is bigger than viewport Fix releasing keyboard by inline helper Fix clearing self user Fix displaying sent public poll Update contacts counter in dialogs placeholder Improve multiselect animation Disable lottie icon animations if they're disabled Fix changing mtproto transport during authorization
32 lines
759 B
TypeScript
32 lines
759 B
TypeScript
/*
|
|
* https://github.com/morethanwords/tweb
|
|
* Copyright (C) 2019-2021 Eduard Kuzmenko
|
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE
|
|
*/
|
|
|
|
import ctx from "../environment/ctx";
|
|
import noop from "./noop";
|
|
|
|
// It's better to use timeout instead of interval, because interval can be corrupted
|
|
export default function eachTimeout(callback: () => any, getNextTimeout: () => number, runFirst = true) {
|
|
const cancel = () => {
|
|
clearTimeout(timeout);
|
|
};
|
|
|
|
// replace callback to run noop and restore after
|
|
const _callback = callback;
|
|
if(!runFirst) {
|
|
callback = noop;
|
|
}
|
|
|
|
let timeout: number;
|
|
(function run() {
|
|
callback();
|
|
timeout = ctx.setTimeout(run, getNextTimeout());
|
|
})();
|
|
|
|
callback = _callback;
|
|
|
|
return cancel;
|
|
}
|