From 2ecd8def816320f3ae3b54216f865e4e2245229e Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:39:54 +0200 Subject: [PATCH] fix(core): push emit handlers into listeners set --- packages/core/src/store/hooks.ts | 3 ++- packages/core/src/utils/createExtendedEventHook.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/core/src/store/hooks.ts b/packages/core/src/store/hooks.ts index 24044b68..3be18625 100644 --- a/packages/core/src/store/hooks.ts +++ b/packages/core/src/store/hooks.ts @@ -69,7 +69,8 @@ export function useHooks(emit: (...args: any[]) => void, hooks: Ref) emit(key, data) } - value.on(listener) + // push into fns instead of using `on` to avoid overwriting default handlers - the emits should be called in addition to the default handlers + value.fns.add(listener) tryOnScopeDispose(() => { value.off(listener) diff --git a/packages/core/src/utils/createExtendedEventHook.ts b/packages/core/src/utils/createExtendedEventHook.ts index cec9925e..44b1767d 100644 --- a/packages/core/src/utils/createExtendedEventHook.ts +++ b/packages/core/src/utils/createExtendedEventHook.ts @@ -8,6 +8,7 @@ import { tryOnScopeDispose } from '@vueuse/core' */ export interface EventHookExtended extends EventHook { hasListeners: () => boolean + fns: Set<(param: T) => void> } export function createExtendedEventHook(defaultHandler?: (param: T) => void): EventHookExtended { @@ -50,5 +51,6 @@ export function createExtendedEventHook(defaultHandler?: (param: T) => off, trigger, hasListeners, + fns, } }