Files
App/js/layout.js
2026-03-24 21:18:17 +00:00

72 lines
2.9 KiB
JavaScript

/* ...
AQUÍ ARRIBA ESTÁ TODO TU CÓDIGO ORIGINAL DEL LAYOUT
(El que dibuja el sidebar, el header, el menú, etc.)
... */
// ==========================================
// 🎨 INYECTOR DE LOGO CORPORATIVO Y PWA (ICONOS APP)
// ==========================================
// 1. INYECCIÓN SÚPER RÁPIDA (Para engañar a los iPhone 🍏)
// Miramos si ya tenemos el logo guardado en la memoria del móvil
const savedLogo = localStorage.getItem("company_logo");
if (savedLogo) {
let appleIcon = document.querySelector("link[rel='apple-touch-icon']");
if (!appleIcon) {
appleIcon = document.createElement('link');
appleIcon.rel = 'apple-touch-icon';
document.head.appendChild(appleIcon);
}
appleIcon.href = savedLogo;
}
// 2. DESCARGA DESDE EL SERVIDOR Y CABECERA
setTimeout(async () => {
if (!localStorage.getItem("token")) return;
try {
const TRACK_API = window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'
? 'http://localhost:3000'
: 'https://integrarepara-api.integrarepara.es';
const res = await fetch(`${TRACK_API}/config/company`, {
headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` }
});
const data = await res.json();
if (data.ok && data.config && data.config.company_logo) {
const logoUrl = data.config.company_logo;
// Guardamos el logo en la memoria del móvil para la próxima vez
localStorage.setItem("company_logo", logoUrl);
// INYECTAR EN LA CABECERA (Reemplaza la letra naranja por el logo)
const headerIcon = document.querySelector('header .w-10.h-10.rounded-xl, #header-container .w-10.h-10');
if (headerIcon) {
headerIcon.innerHTML = '';
headerIcon.className = "w-10 h-10 flex shrink-0 items-center justify-center";
headerIcon.style.background = "transparent";
headerIcon.style.boxShadow = "none";
const img = document.createElement('img');
img.src = logoUrl;
img.className = "max-w-full max-h-full object-contain drop-shadow-sm";
headerIcon.appendChild(img);
}
// Inyectamos el icono por si es la primera vez que entra
let appleIcon = document.querySelector("link[rel='apple-touch-icon']");
if (!appleIcon) {
appleIcon = document.createElement('link');
appleIcon.rel = 'apple-touch-icon';
document.head.appendChild(appleIcon);
}
appleIcon.href = logoUrl;
}
} catch (e) {
console.error("No se pudo cargar la configuración visual de la empresa", e);
}
}, 100);
// 🛑 RASTREADOR FANTASMA GPS (MODO DE CAMINO) DESACTIVADO TEMPORALMENTE 🛑
// (Por petición del desarrollador, se ha eliminado el bloque setInterval del GPS)