From c44cf42e2ced8420a24e75d8161bbf7c059015c8 Mon Sep 17 00:00:00 2001
From: Dan Wallis <mrdanwallis@gmail.com>
Date: Sun, 31 Oct 2021 20:18:44 +0000
Subject: [PATCH] Deprecate unused `evented` utility (#3125)

---
 js/src/common/utils/evented.js | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/js/src/common/utils/evented.js b/js/src/common/utils/evented.js
index 5fd91a919..05150bf3e 100644
--- a/js/src/common/utils/evented.js
+++ b/js/src/common/utils/evented.js
@@ -1,7 +1,15 @@
 /**
  * The `evented` mixin provides methods allowing an object to trigger events,
  * running externally registered event handlers.
+ *
+ * @deprecated v1.2, to be removed in v2.0
  */
+
+import fireDebugWarning from '../helpers/fireDebugWarning';
+
+const deprecatedNotice =
+  'The `evented` util is deprecated and will be removed in Flarum 2.0. For more info, please see https://github.com/flarum/core/issues/2547';
+
 export default {
   /**
    * Arrays of registered event handlers, grouped by the event name.
@@ -19,6 +27,8 @@ export default {
    * @protected
    */
   getHandlers(event) {
+    fireDebugWarning(deprecatedNotice);
+
     this.handlers = this.handlers || {};
 
     this.handlers[event] = this.handlers[event] || [];
@@ -34,6 +44,8 @@ export default {
    * @public
    */
   trigger(event, ...args) {
+    fireDebugWarning(deprecatedNotice);
+
     this.getHandlers(event).forEach((handler) => handler.apply(this, args));
   },
 
@@ -44,6 +56,8 @@ export default {
    * @param {function} handler The function to handle the event.
    */
   on(event, handler) {
+    fireDebugWarning(deprecatedNotice);
+
     this.getHandlers(event).push(handler);
   },
 
@@ -55,6 +69,8 @@ export default {
    * @param {function} handler The function to handle the event.
    */
   one(event, handler) {
+    fireDebugWarning(deprecatedNotice);
+
     const wrapper = function () {
       handler.apply(this, arguments);
 
@@ -71,6 +87,8 @@ export default {
    * @param {function} handler The function that handles the event.
    */
   off(event, handler) {
+    fireDebugWarning(deprecatedNotice);
+
     const handlers = this.getHandlers(event);
     const index = handlers.indexOf(handler);