From a9d825380068fabf475fa11917fec0407b611d90 Mon Sep 17 00:00:00 2001 From: Lizandro Date: Tue, 14 Jul 2026 01:32:29 +0000 Subject: [PATCH] =?UTF-8?q?fix(chat):=20men=C3=BA=20no=20se=20repite=20+?= =?UTF-8?q?=20responsive=20corregido?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - abrirChat(): mueve cargarMensajes() al final (después de crear mensajes en DB) - abrirChat(): siempre agrega saludo+menú al autenticarse (no hay duplicación porque mount() no llama a abrirChat()) - mount(): solo restaura estado desde sesión, sin agregar mensajes nuevos - public-chat.blade.php: root div recupera flex flex-col (flex-1 en hijos funciona) Co-Authored-By: Claude Sonnet 4.6 --- app/Http/Livewire/Chat/PublicChat.php | 14 +++++++++++--- .../views/livewire/chat/public-chat.blade.php | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/Http/Livewire/Chat/PublicChat.php b/app/Http/Livewire/Chat/PublicChat.php index bf98768..a30840f 100644 --- a/app/Http/Livewire/Chat/PublicChat.php +++ b/app/Http/Livewire/Chat/PublicChat.php @@ -267,9 +267,10 @@ class PublicChat extends Component $this->saldoUsuario = $user->saldo?->valor ?? 0; } - $conv = $contact->activeConversation(); + $conv = $contact->activeConversation(); + $esNueva = ! $conv; - if (! $conv) { + if ($esNueva) { $conv = ChatConversation::create([ 'contact_id' => $contact->id, 'canal' => 'web', @@ -280,6 +281,12 @@ class PublicChat extends Component ? "¡Hola, {$this->nombreUsuario}! Bienvenido." : "¡Hola! Bienvenido."; $this->guardarMensajeBot($conv->id, $saludo); + } else { + // Conversación existente: el usuario acaba de verificarse por OTP + $saludo = $this->nombreUsuario + ? "Bienvenido de nuevo, {$this->nombreUsuario}!" + : "Bienvenido de nuevo!"; + $this->guardarMensajeBot($conv->id, $saludo); } $this->convId = $conv->id; @@ -289,8 +296,9 @@ class PublicChat extends Component session()->put('chat_user_id', $this->userId); session()->put('chat_conv_id', $conv->id); - $this->cargarMensajes(); + // Siempre muestra el menú al autenticarse (mount no llama a este método) $this->mostrarMenuPrincipal($conv->id); + $this->cargarMensajes(); } private function enmascararEmail(string $email): string diff --git a/resources/views/livewire/chat/public-chat.blade.php b/resources/views/livewire/chat/public-chat.blade.php index cdc9aac..b681c4a 100644 --- a/resources/views/livewire/chat/public-chat.blade.php +++ b/resources/views/livewire/chat/public-chat.blade.php @@ -1,4 +1,4 @@ -
+
{{-- ══ PASO 1: Ingreso de correo ══ --}} @if ($paso === 'email')