From 07638f7e7dd6718155eb650562d71063e7756de5 Mon Sep 17 00:00:00 2001
From: hmhealey <harrisonmhealey@gmail.com>
Date: Tue, 15 Dec 2015 15:55:52 -0500
Subject: Added DelayedAction class to use to handle stopping scrolling

---
 web/react/utils/delayed_action.jsx | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 web/react/utils/delayed_action.jsx

(limited to 'web/react/utils/delayed_action.jsx')

diff --git a/web/react/utils/delayed_action.jsx b/web/react/utils/delayed_action.jsx
new file mode 100644
index 000000000..4f6239ad0
--- /dev/null
+++ b/web/react/utils/delayed_action.jsx
@@ -0,0 +1,27 @@
+// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+export default class DelayedAction {
+    constructor(action) {
+        this.action = action;
+
+        this.timer = -1;
+
+        // bind fire since it doesn't get passed the correct this value with setTimeout
+        this.fire = this.fire.bind(this);
+    }
+
+    fire() {
+        this.action();
+
+        this.timer = -1;
+    }
+
+    fireAfter(timeout) {
+        if (this.timer >= 0) {
+            window.clearTimeout(this.timer);
+        }
+
+        this.timer = window.setTimeout(this.fire, timeout);
+    }
+}
-- 
cgit v1.2.3-1-g7c22

