From 12896bd23eeba79884245c1c29fdc568cf21a7fa Mon Sep 17 00:00:00 2001
From: Christopher Speller <crspeller@gmail.com>
Date: Mon, 14 Mar 2016 08:50:46 -0400
Subject: Converting to Webpack. Stage 1.

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

(limited to 'webapp/utils/delayed_action.jsx')

diff --git a/webapp/utils/delayed_action.jsx b/webapp/utils/delayed_action.jsx
new file mode 100644
index 000000000..4f6239ad0
--- /dev/null
+++ b/webapp/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

