@@ -78,36 +78,18 @@ export const useEcho = <
78
78
TPayload ,
79
79
TDriver extends BroadcastDriver = BroadcastDriver ,
80
80
TVisibility extends Channel [ "visibility" ] = "private" ,
81
- TEvent extends string = string ,
82
81
> (
83
82
channelName : string ,
84
- event : TEvent | TEvent [ ] ,
85
- callback : ( payload : TPayload , eventName : TEvent ) => void ,
83
+ event : string | string [ ] ,
84
+ callback : ( payload : TPayload ) => void ,
86
85
dependencies : any [ ] = [ ] ,
87
86
visibility : TVisibility = "private" as TVisibility ,
88
87
) => {
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 ) ;
108
89
const subscription = useRef < Connection < TDriver > | null > ( null ) ;
109
90
const listening = useRef ( false ) ;
110
91
92
+ const events = toArray ( event ) ;
111
93
const channel : Channel = {
112
94
name : channelName ,
113
95
id : [ "private" , "presence" ] . includes ( visibility )
@@ -122,11 +104,7 @@ export const useEcho = <
122
104
}
123
105
124
106
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 ) ;
130
108
} ) ;
131
109
132
110
listening . current = false ;
@@ -138,16 +116,7 @@ export const useEcho = <
138
116
}
139
117
140
118
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 ) ;
151
120
} ) ;
152
121
153
122
listening . current = true ;
@@ -202,14 +171,13 @@ export const useEcho = <
202
171
export const useEchoPresence = <
203
172
TPayload ,
204
173
TDriver extends BroadcastDriver = BroadcastDriver ,
205
- TEvent extends string = string ,
206
174
> (
207
175
channelName : string ,
208
- event : TEvent | TEvent [ ] ,
209
- callback : ( payload : TPayload , eventName : TEvent ) => void ,
176
+ event : string | string [ ] ,
177
+ callback : ( payload : TPayload ) => void ,
210
178
dependencies : any [ ] = [ ] ,
211
179
) => {
212
- return useEcho < TPayload , TDriver , "presence" , TEvent > (
180
+ return useEcho < TPayload , TDriver , "presence" > (
213
181
channelName ,
214
182
event ,
215
183
callback ,
@@ -221,14 +189,13 @@ export const useEchoPresence = <
221
189
export const useEchoPublic = <
222
190
TPayload ,
223
191
TDriver extends BroadcastDriver = BroadcastDriver ,
224
- TEvent extends string = string ,
225
192
> (
226
193
channelName : string ,
227
- event : TEvent | TEvent [ ] ,
228
- callback : ( payload : TPayload , eventName : TEvent ) => void ,
194
+ event : string | string [ ] ,
195
+ callback : ( payload : TPayload ) => void ,
229
196
dependencies : any [ ] = [ ] ,
230
197
) => {
231
- return useEcho < TPayload , TDriver , "public" , TEvent > (
198
+ return useEcho < TPayload , TDriver , "public" > (
232
199
channelName ,
233
200
event ,
234
201
callback ,
@@ -241,19 +208,16 @@ export const useEchoModel = <
241
208
TPayload ,
242
209
TModel extends string ,
243
210
TDriver extends BroadcastDriver = BroadcastDriver ,
244
- TEvent extends ModelEvents < TModel > = ModelEvents < TModel > ,
245
211
> (
246
212
model : TModel ,
247
213
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 ,
250
216
dependencies : any [ ] = [ ] ,
251
217
) => {
252
- return useEcho < ModelPayload < TPayload > , TDriver , "private" , TEvent > (
218
+ return useEcho < ModelPayload < TPayload > , TDriver , "private" > (
253
219
`${ model } .${ identifier } ` ,
254
- toArray ( event ) . map ( ( e ) =>
255
- e . startsWith ( "." ) ? e : `.${ e } ` ,
256
- ) as TEvent [ ] ,
220
+ toArray ( event ) . map ( ( e ) => ( e . startsWith ( "." ) ? e : `.${ e } ` ) ) ,
257
221
callback ,
258
222
dependencies ,
259
223
"private" ,
0 commit comments