From c35206664da08b44045d23a9f327bf502e5dd846 Mon Sep 17 00:00:00 2001 From: idevakk <219866223+idevakk@users.noreply.github.com> Date: Fri, 6 Mar 2026 02:50:07 +0530 Subject: [PATCH] feat: sync active mailbox pulse indicator with WebSocket connection status --- resources/js/app.js | 12 ++++++++++++ resources/views/components/layouts/app.blade.php | 4 +++- resources/views/livewire/mailbox.blade.php | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/resources/js/app.js b/resources/js/app.js index 8fcf5a2..3abade8 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -13,4 +13,16 @@ if (document.querySelector('[data-requires-reverb]')) { forceTLS: (import.meta.env.VITE_REVERB_SCHEME ?? 'https') === 'https', enabledTransports: ['ws', 'wss'], }); + + // Handle WebSocket connection status events + const dispatchStatus = (connected) => { + window.dispatchEvent(new CustomEvent('ws-status', { + detail: { connected } + })); + }; + + window.Echo.connector.pusher.connection.bind('connected', () => dispatchStatus(true)); + window.Echo.connector.pusher.connection.bind('unavailable', () => dispatchStatus(false)); + window.Echo.connector.pusher.connection.bind('disconnected', () => dispatchStatus(false)); + window.Echo.connector.pusher.connection.bind('failed', () => dispatchStatus(false)); } diff --git a/resources/views/components/layouts/app.blade.php b/resources/views/components/layouts/app.blade.php index 32ce6cf..b36e783 100644 --- a/resources/views/components/layouts/app.blade.php +++ b/resources/views/components/layouts/app.blade.php @@ -25,6 +25,7 @@
+ @notify.window="addToast($event.detail.message, $event.detail.type)" + @ws-status.window="wsConnected = $event.detail.connected"> {{ $slot }} diff --git a/resources/views/livewire/mailbox.blade.php b/resources/views/livewire/mailbox.blade.php index c5ab24f..de67a21 100644 --- a/resources/views/livewire/mailbox.blade.php +++ b/resources/views/livewire/mailbox.blade.php @@ -124,7 +124,8 @@