mattermost-mobile/app/mm-redux/utils/delayed_action.ts
Elias Nahum 5ea470a235
V1 dependencies and bump to RN 0.67.2 (#5908)
* update dependencies

* eslint fixes

* Upgrade to RN 67

* update other deps

* Update to RN 0.67.2

* fix Android build (mmkv)

* Fix crash when root message is deleted from the thread screen

* Fix gif emoji playing at high speed on iOS ProMotion capable devices
2022-02-02 15:28:57 -03:00

32 lines
700 B
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
export default class DelayedAction {
action: Function;
timer: NodeJS.Timeout | null;
constructor(action: Function) {
this.action = action;
this.timer = null;
}
fire = (): void => {
this.action();
this.timer = null;
};
fireAfter = (timeout: number): void => {
if (this.timer !== null) {
clearTimeout(this.timer);
}
this.timer = setTimeout(this.fire, timeout);
};
cancel = (): void => {
if (this.timer !== null) {
clearTimeout(this.timer);
}
};
}