Skip to content

Commit 73767bb

Browse files
committed
Revert "Merge pull request #427 from laravel/listen-to-all"
This reverts commit 67ffc12, reversing changes made to 7c98015.
1 parent 67ffc12 commit 73767bb

File tree

7 files changed

+143
-370
lines changed

7 files changed

+143
-370
lines changed

.vscode/tasks.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
{
55
"type": "npm",
66
"script": "build",
7-
"path": ".",
7+
"path": "packages/react",
88
"group": {
99
"kind": "build",
1010
"isDefault": true
1111
},
1212
"problemMatcher": [],
13-
"label": "pnpm: build all packages",
13+
"label": "npm: build - packages/react",
1414
"detail": "vite build && FORMAT=iife vite build"
1515
}
1616
]

packages/react/src/hooks/use-echo.ts

Lines changed: 16 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -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 = <
202171
export 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 = <
221189
export 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",

packages/react/src/types.ts

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ export type ConfigDefaults<O extends BroadcastDriver> = Record<
2323

2424
export type ModelPayload<T> = {
2525
model: T;
26-
connection: string | null;
27-
queue: string | null;
28-
afterCommit: boolean;
2926
};
3027

3128
export type ChannelReturnType<
@@ -43,18 +40,18 @@ export type ModelName<T extends string> = T extends `${infer _}.${infer U}`
4340
: T;
4441

4542
export type ModelEvents<T extends string> =
46-
| `.${ModelName<T>}Retrieved`
47-
| `.${ModelName<T>}Creating`
48-
| `.${ModelName<T>}Created`
49-
| `.${ModelName<T>}Updating`
50-
| `.${ModelName<T>}Updated`
51-
| `.${ModelName<T>}Saving`
52-
| `.${ModelName<T>}Saved`
53-
| `.${ModelName<T>}Deleting`
54-
| `.${ModelName<T>}Deleted`
55-
| `.${ModelName<T>}Trashed`
56-
| `.${ModelName<T>}ForceDeleting`
57-
| `.${ModelName<T>}ForceDeleted`
58-
| `.${ModelName<T>}Restoring`
59-
| `.${ModelName<T>}Restored`
60-
| `.${ModelName<T>}Replicating`;
43+
| `${ModelName<T>}Retrieved`
44+
| `${ModelName<T>}Creating`
45+
| `${ModelName<T>}Created`
46+
| `${ModelName<T>}Updating`
47+
| `${ModelName<T>}Updated`
48+
| `${ModelName<T>}Saving`
49+
| `${ModelName<T>}Saved`
50+
| `${ModelName<T>}Deleting`
51+
| `${ModelName<T>}Deleted`
52+
| `${ModelName<T>}Trashed`
53+
| `${ModelName<T>}ForceDeleting`
54+
| `${ModelName<T>}ForceDeleted`
55+
| `${ModelName<T>}Restoring`
56+
| `${ModelName<T>}Restored`
57+
| `${ModelName<T>}Replicating`;

0 commit comments

Comments
 (0)