From f13d3d6f4bb9fd429d9b6555a56fb66d47281ad4 Mon Sep 17 00:00:00 2001 From: Harley Alexander Date: Tue, 29 Oct 2019 14:13:02 +1100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8remove=20memoised=20callback,=20pass?= =?UTF-8?q?=20empty=20data=20object?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/useClientTrigger.ts | 2 +- src/useEvent.ts | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/useClientTrigger.ts b/src/useClientTrigger.ts index afd02d0..d491a7c 100644 --- a/src/useClientTrigger.ts +++ b/src/useClientTrigger.ts @@ -11,7 +11,7 @@ export function useClientTrigger(channel: Channel | PresenceChannel) { // memoize trigger so it's not being created every render const trigger = useCallback( - (eventName: string, data?: any) => { + (eventName: string, data: any = {}) => { invariant(eventName, "Must pass event name to trigger a client event."); channel && channel.trigger(eventName, data); }, diff --git a/src/useEvent.ts b/src/useEvent.ts index 08e39bc..ba97294 100644 --- a/src/useEvent.ts +++ b/src/useEvent.ts @@ -18,15 +18,23 @@ export function useEvent( invariant(eventName, "Must supply eventName and callback to onEvent"); invariant(callback, "Must supply callback to onEvent"); - const callbackRef = useCallback(callback, dependencies); + useEffect(() => { + if (dependencies) { + console.warn( + "dependencies are no longer honoured - memoizing the callback is up to the developer." + ); + } + }, [dependencies]); + + // const callbackRef = useCallback(callback, dependencies); useEffect(() => { if (channel === undefined) { // console.warn("No channel supplied to onEvent. Not binding callback."); return; } - channel.bind(eventName, callbackRef); + channel.bind(eventName, callback); return () => { - channel.unbind(eventName, callbackRef); + channel.unbind(eventName, callback); }; - }, [channel, eventName, callbackRef]); + }, [channel, eventName, callback]); }