From b88bb3cfbbdd6f4aa10cc30d8386323d1f0f91cc Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 23 Mar 2022 16:35:59 -0400 Subject: [PATCH] feat: allow client-side hook registration chaining --- public/src/modules/hooks.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/public/src/modules/hooks.js b/public/src/modules/hooks.js index 7ba651e252..4092c6b9f2 100644 --- a/public/src/modules/hooks.js +++ b/public/src/modules/hooks.js @@ -59,17 +59,18 @@ define('hooks', [], () => { } Hooks.logs.log(`[hooks] Registered ${hookName}`, method); + return Hooks; }; Hooks.on = Hooks.register; Hooks.one = (hookName, method) => { - Hooks.register(hookName, method); Hooks.runOnce.add({ hookName, method }); + return Hooks.register(hookName, method); }; // registerPage/onPage takes care of unregistering the listener on ajaxify Hooks.registerPage = (hookName, method) => { Hooks.temporary.add({ hookName, method }); - Hooks.register(hookName, method); + return Hooks.register(hookName, method); }; Hooks.onPage = Hooks.registerPage; Hooks.register('action:ajaxify.start', () => { @@ -86,6 +87,8 @@ define('hooks', [], () => { } else { Hooks.logs.log(`[hooks] Unregistration of ${hookName} failed, passed-in method is not a registered listener or the hook itself has no listeners, currently.`); } + + return Hooks; }; Hooks.off = Hooks.unregister;