Fix: Galeria Movil, Contactos, Estado de Verificación de Mail al Cambiar Clave y Otros.
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user