fix: apply code review fixes — double layout, SSE leaks, interval leak, conflict values

- App.tsx: remove double-wrapped MainLayout from /notifications route
- NotificationBell.tsx: decouple SSE from popover open state using ref
- useNotifications.ts: fix interval leak in onerror via ref in cleanup
- notifications.controller.ts: unsubscribe on req.on('close') for SSE Subject
- schedules.controller.ts: use existing schedule values in conflict catch
This commit is contained in:
2026-07-05 23:31:21 +08:00
parent 7020e86809
commit 9e6c136ef0
5 changed files with 19 additions and 17 deletions

View File

@@ -48,6 +48,9 @@ export class NotificationsController {
@Sse('stream')
stream(@Req() req: AuthenticatedRequest): Observable<MessageEvent> {
const userId = req.user.id;
req.on('close', () => {
this.service.unsubscribe(userId);
});
return this.service.subscribe(userId).pipe(
map((notification) => ({
data: JSON.stringify({