]> BookStack Code Mirror - bookstack/blobdiff - resources/js/services/events.ts
ZIP Imports: Added API examples, finished testing
[bookstack] / resources / js / services / events.ts
index 7dae6dc29d96da23801f4c71d480d033e8612de1..6045d51f823846fae39803befb9efb1dc0d7cca3 100644 (file)
@@ -1,7 +1,9 @@
 import {HttpError} from "./http";
 
+type Listener = (data: any) => void;
+
 export class EventManager {
-    protected listeners: Record<string, ((data: any) => void)[]> = {};
+    protected listeners: Record<string, Listener[]> = {};
     protected stack: {name: string, data: {}}[] = [];
 
     /**
@@ -27,7 +29,7 @@ export class EventManager {
     /**
      * Remove an event listener which is using the given callback for the given event name.
      */
-    remove(eventName: string, callback: Function): void {
+    remove(eventName: string, callback: Listener): void {
         const listeners = this.listeners[eventName] || [];
         const index = listeners.indexOf(callback);
         if (index !== -1) {
@@ -64,8 +66,7 @@ export class EventManager {
     /**
      * Notify of standard server-provided validation errors.
      */
-    showValidationErrors(responseErr: {status?: number, data?: object}): void {
-        if (!responseErr.status) return;
+    showValidationErrors(responseErr: HttpError): void {
         if (responseErr.status === 422 && responseErr.data) {
             const message = Object.values(responseErr.data).flat().join('\n');
             this.error(message);