@@ -78,36 +78,18 @@ export const useEcho = <
7878 TPayload ,
7979 TDriver extends BroadcastDriver = BroadcastDriver ,
8080 TVisibility extends Channel [ "visibility" ] = "private" ,
81- TEvent extends string = string ,
8281> (
8382 channelName : string ,
84- event : TEvent | TEvent [ ] ,
85- callback : ( payload : TPayload , eventName : TEvent ) => void ,
83+ event : string | string [ ] ,
84+ callback : ( payload : TPayload ) => void ,
8685 dependencies : any [ ] = [ ] ,
8786 visibility : TVisibility = "private" as TVisibility ,
8887) => {
89- const events = toArray ( event ) ;
90- const callbacks = useRef <
91- Record < TEvent , ( payload : TPayload , eventName : TEvent ) => void >
92- > (
93- events . reduce (
94- ( acc , e ) => {
95- acc [ e ] = ( payload : TPayload ) => callback ( payload , e ) ;
96- return acc ;
97- } ,
98- { } as Record <
99- TEvent ,
100- ( payload : TPayload , eventName : TEvent ) => void
101- > ,
102- ) ,
103- ) ;
104- const allCallbackFunc = useCallback (
105- ( eventName : TEvent , payload : TPayload ) => callback ( payload , eventName ) ,
106- dependencies ,
107- ) ;
88+ const callbackFunc = useCallback ( callback , dependencies ) ;
10889 const subscription = useRef < Connection < TDriver > | null > ( null ) ;
10990 const listening = useRef ( false ) ;
11091
92+ const events = toArray ( event ) ;
11193 const channel : Channel = {
11294 name : channelName ,
11395 id : [ "private" , "presence" ] . includes ( visibility )
@@ -122,11 +104,7 @@ export const useEcho = <
122104 }
123105
124106 events . forEach ( ( e ) => {
125- if ( e !== "*" ) {
126- subscription . current ! . stopListening ( e , callbacks . current [ e ] ) ;
127- } else if ( "stopListeningToAll" in subscription . current ! ) {
128- subscription . current . stopListeningToAll ( allCallbackFunc ) ;
129- }
107+ subscription . current ! . stopListening ( e , callbackFunc ) ;
130108 } ) ;
131109
132110 listening . current = false ;
@@ -138,16 +116,7 @@ export const useEcho = <
138116 }
139117
140118 events . forEach ( ( e ) => {
141- if ( e !== "*" ) {
142- subscription . current ! . listen ( e , callbacks . current [ e ] ) ;
143- } else if ( "listenToAll" in subscription . current ! ) {
144- subscription . current . listenToAll ( allCallbackFunc ) ;
145- } else {
146- // eslint-disable-next-line no-console
147- console . warn (
148- "listenToAll is not supported for this channel type" ,
149- ) ;
150- }
119+ subscription . current ! . listen ( e , callbackFunc ) ;
151120 } ) ;
152121
153122 listening . current = true ;
@@ -202,14 +171,13 @@ export const useEcho = <
202171export const useEchoPresence = <
203172 TPayload ,
204173 TDriver extends BroadcastDriver = BroadcastDriver ,
205- TEvent extends string = string ,
206174> (
207175 channelName : string ,
208- event : TEvent | TEvent [ ] ,
209- callback : ( payload : TPayload , eventName : TEvent ) => void ,
176+ event : string | string [ ] ,
177+ callback : ( payload : TPayload ) => void ,
210178 dependencies : any [ ] = [ ] ,
211179) => {
212- return useEcho < TPayload , TDriver , "presence" , TEvent > (
180+ return useEcho < TPayload , TDriver , "presence" > (
213181 channelName ,
214182 event ,
215183 callback ,
@@ -221,14 +189,13 @@ export const useEchoPresence = <
221189export const useEchoPublic = <
222190 TPayload ,
223191 TDriver extends BroadcastDriver = BroadcastDriver ,
224- TEvent extends string = string ,
225192> (
226193 channelName : string ,
227- event : TEvent | TEvent [ ] ,
228- callback : ( payload : TPayload , eventName : TEvent ) => void ,
194+ event : string | string [ ] ,
195+ callback : ( payload : TPayload ) => void ,
229196 dependencies : any [ ] = [ ] ,
230197) => {
231- return useEcho < TPayload , TDriver , "public" , TEvent > (
198+ return useEcho < TPayload , TDriver , "public" > (
232199 channelName ,
233200 event ,
234201 callback ,
@@ -241,19 +208,16 @@ export const useEchoModel = <
241208 TPayload ,
242209 TModel extends string ,
243210 TDriver extends BroadcastDriver = BroadcastDriver ,
244- TEvent extends ModelEvents < TModel > = ModelEvents < TModel > ,
245211> (
246212 model : TModel ,
247213 identifier : string | number ,
248- event : TEvent | TEvent [ ] ,
249- callback : ( payload : ModelPayload < TPayload > , eventName : TEvent ) => void ,
214+ event : ModelEvents < TModel > | ModelEvents < TModel > [ ] ,
215+ callback : ( payload : ModelPayload < TPayload > ) => void ,
250216 dependencies : any [ ] = [ ] ,
251217) => {
252- return useEcho < ModelPayload < TPayload > , TDriver , "private" , TEvent > (
218+ return useEcho < ModelPayload < TPayload > , TDriver , "private" > (
253219 `${ model } .${ identifier } ` ,
254- toArray ( event ) . map ( ( e ) =>
255- e . startsWith ( "." ) ? e : `.${ e } ` ,
256- ) as TEvent [ ] ,
220+ toArray ( event ) . map ( ( e ) => ( e . startsWith ( "." ) ? e : `.${ e } ` ) ) ,
257221 callback ,
258222 dependencies ,
259223 "private" ,
0 commit comments