Fix: Galeria Movil, Contactos, Estado de Verificación de Mail al Cambiar Clave y Otros.

This commit is contained in:
2026-02-18 21:00:35 -03:00
parent 5a7c3f62f1
commit ba9b0b3547
6 changed files with 71 additions and 29 deletions

View File

@@ -131,7 +131,7 @@ export default function PremiumGallery({
{/* MINIATURAS (THUMBNAILS) */}
{photos.length > 1 && (
<div className="flex gap-3 md:gap-4 overflow-x-auto pt-4 pb-4 px-1 scrollbar-hide no-scrollbar items-center justify-center">
<div className="flex gap-3 md:gap-4 overflow-x-auto pt-4 pb-4 scrollbar-hide no-scrollbar items-center justify-start">
{photos.map((p, idx) => (
<button
key={idx}

View File

@@ -1,5 +1,10 @@
import { createContext, useContext, useState,
useEffect, useCallback, type ReactNode,
import {
createContext,
useContext,
useState,
useEffect,
useCallback,
type ReactNode,
} from "react";
import { AuthService, type UserSession } from "../services/auth.service";
import { ChatService } from "../services/chat.service";
@@ -50,19 +55,28 @@ export function AuthProvider({ children }: { children: ReactNode }) {
try {
const sessionUser = await AuthService.checkSession();
if (sessionUser) {
// Si la sesión es válida, actualizamos el estado si es necesario
// Comparamos IDs para evitar re-renders innecesarios si es el mismo usuario
if (sessionUser.id !== user?.id) {
setUser(sessionUser);
}
await fetchUnreadCount();
} else {
// Si el backend dice null (sesión inválida), sacamos al usuario
// El backend respondió 200 OK pero con body null (sesión inválida explícita)
if (user) logout();
}
} catch (error) {
// Si hay error de red o 401 que no se pudo refrescar
if (user) logout();
} catch (error: any) {
// Solo desloguear si es un error 401 (No autorizado) o 403 (Prohibido).
// Si es un error de red (sin response) o 500, mantenemos al usuario "logueado" visualmente
// hasta que recupere conexión o intente una acción que falle.
if (
error.response &&
(error.response.status === 401 || error.response.status === 403)
) {
if (user) logout();
} else {
console.warn(
"No se pudo verificar la sesión (posible error de red), se mantiene estado actual.",
);
}
} finally {
setLoading(false);
}

View File

@@ -86,7 +86,7 @@ export default function VehiculoDetailPage() {
const isOwnerAdmin = vehicle.ownerUserType === 3;
const isAdActive = vehicle.statusID === AD_STATUSES.ACTIVE;
const isContactable = isAdActive && !isOwnerAdmin;
const isContactable = isAdActive && vehicle.displayContactInfo;
return (
<div className="container mx-auto px-4 md:px-6 py-6 md:py-12 animate-fade-in-up">