From d27bd1c0d7841ce322d0e5fdbc98b76566ad5ec9 Mon Sep 17 00:00:00 2001 From: Lizandro Date: Tue, 14 Jul 2026 01:22:23 +0000 Subject: [PATCH] =?UTF-8?q?fix(chat):=20sesi=C3=B3n=20persistente=20entre?= =?UTF-8?q?=20recargas=20+=20responsive=20m=C3=B3vil/desktop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - mount(): restaura userId y convId desde sesión Laravel al recargar página - abrirChat(): guarda chat_user_id y chat_conv_id en sesión - cerrarSesion(): limpia la sesión correctamente - Desktop: chat centrado como frame (420px, bordes redondeados, sombra) - Móvil: pantalla completa sin restricción de ancho - teclado virtual: ajuste de altura solo en móvil Co-Authored-By: Claude Sonnet 4.6 --- app/Http/Livewire/Chat/PublicChat.php | 32 +++++++ resources/views/chat-publico.blade.php | 84 ++++++++++++------- .../views/livewire/chat/public-chat.blade.php | 4 +- 3 files changed, 87 insertions(+), 33 deletions(-) diff --git a/app/Http/Livewire/Chat/PublicChat.php b/app/Http/Livewire/Chat/PublicChat.php index 297b0f4..bf98768 100644 --- a/app/Http/Livewire/Chat/PublicChat.php +++ b/app/Http/Livewire/Chat/PublicChat.php @@ -54,6 +54,32 @@ class PublicChat extends Component public $fotoComprobante = null; public bool $procesandoImagen = false; + public function mount(): void + { + $userId = session('chat_user_id'); + $convId = session('chat_conv_id'); + + if (! $userId || ! $convId) { + return; + } + + $user = User::with('saldo')->find($userId); + $conv = ChatConversation::find($convId); + + if (! $user || ! $conv) { + session()->forget(['chat_user_id', 'chat_conv_id']); + return; + } + + $this->userId = $user->id; + $this->nombreUsuario = $user->name; + $this->saldoUsuario = $user->saldo?->valor ?? 0; + $this->convId = $conv->id; + $this->estadoConv = $conv->estado; + $this->paso = 'chat'; + $this->cargarMensajes(); + } + protected $rules = [ 'email' => 'required|email|max:100', 'nombreRegistro' => 'required|max:80', @@ -139,6 +165,8 @@ class PublicChat extends Component public function cerrarSesion(): void { + session()->forget(['chat_user_id', 'chat_conv_id']); + $this->email = ''; $this->nombreRegistro = ''; $this->cedulaRegistro = ''; @@ -257,6 +285,10 @@ class PublicChat extends Component $this->convId = $conv->id; $this->estadoConv = $conv->estado; $this->paso = 'chat'; + + session()->put('chat_user_id', $this->userId); + session()->put('chat_conv_id', $conv->id); + $this->cargarMensajes(); $this->mostrarMenuPrincipal($conv->id); } diff --git a/resources/views/chat-publico.blade.php b/resources/views/chat-publico.blade.php index 6c224d5..542554b 100644 --- a/resources/views/chat-publico.blade.php +++ b/resources/views/chat-publico.blade.php @@ -2,11 +2,9 @@ - {{-- viewport-fit=cover expone las safe areas del notch/Dynamic Island --}} - {{-- Apple PWA / standalone --}} @@ -14,43 +12,71 @@