refactor(core): remove default event listener void fn

This commit is contained in:
braks
2023-10-30 13:36:07 +01:00
committed by Braks
parent c834ae235a
commit 7494817842
@@ -10,12 +10,15 @@ export interface EventHookExtended<T> extends EventHook<T> {
hasListeners: () => boolean hasListeners: () => boolean
} }
export function createExtendedEventHook<T = any>(defaultHandler: (param: T) => void = () => {}): EventHookExtended<T> { export function createExtendedEventHook<T = any>(defaultHandler?: (param: T) => void): EventHookExtended<T> {
const fns = new Set<(param: T) => void>() const fns = new Set<(param: T) => void>()
let hasDefaultHandler = false
const hasListeners = () => fns.size > 0 const hasListeners = () => fns.size > 0
if (defaultHandler) { if (defaultHandler) {
hasDefaultHandler = true
fns.add(defaultHandler) fns.add(defaultHandler)
} }
@@ -24,7 +27,7 @@ export function createExtendedEventHook<T = any>(defaultHandler: (param: T) => v
} }
const on = (fn: (param: T) => void) => { const on = (fn: (param: T) => void) => {
if (fns.has(defaultHandler)) { if (defaultHandler && hasDefaultHandler) {
fns.delete(defaultHandler) fns.delete(defaultHandler)
} }