diff --git a/almeira-web-deploy.zip b/almeira-web-deploy.zip index ff8a997..5684b34 100644 Binary files a/almeira-web-deploy.zip and b/almeira-web-deploy.zip differ diff --git a/src/app/dashboard/entity/page.tsx b/src/app/dashboard/entity/page.tsx index a0ce541..8e81cec 100644 --- a/src/app/dashboard/entity/page.tsx +++ b/src/app/dashboard/entity/page.tsx @@ -68,7 +68,15 @@ export default async function EntityPage() { /> - + {(() => { + const ENDPOINT = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT || 'https://appwrite.almeira.com.co/v1'; + const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c'; + let logoUrl = entity?.logotipo || ''; + if (logoUrl && !logoUrl.startsWith('http') && !logoUrl.startsWith('/')) { + logoUrl = `${ENDPOINT}/storage/buckets/media/files/${logoUrl}/view?project=${PROJECT_ID}`; + } + return ; + })()}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 8b924e0..6ce1bdc 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -11,11 +11,19 @@ import "./globals.css"; export async function generateMetadata(): Promise { const entity = await getEntity(); const razonSocial = entity?.razon_social || "Almeira Producciones"; + + const ENDPOINT = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT || 'https://appwrite.almeira.com.co/v1'; + const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c'; + let logoUrl = entity?.logotipo || null; + if (logoUrl && !logoUrl.startsWith('http') && !logoUrl.startsWith('/')) { + logoUrl = `${ENDPOINT}/storage/buckets/media/files/${logoUrl}/view?project=${PROJECT_ID}`; + } + return { title: `${razonSocial} | Vanguardia Digital`, description: "El portal de noticias y streaming hiperconectado.", icons: { - icon: entity?.logotipo || "/favicon.ico", + icon: logoUrl || "/favicon.ico", } }; } diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index 63d7565..7d9e96c 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -5,6 +5,13 @@ import { Radio } from 'lucide-react'; export default async function LoginPage() { const entity = await getEntity(); + const ENDPOINT = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT || 'https://appwrite.almeira.com.co/v1'; + const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c'; + let logoUrl = entity?.logotipo || null; + if (logoUrl && !logoUrl.startsWith('http') && !logoUrl.startsWith('/')) { + logoUrl = `${ENDPOINT}/storage/buckets/media/files/${logoUrl}/view?project=${PROJECT_ID}`; + } + return (
@@ -14,15 +21,15 @@ export default async function LoginPage() {
- {entity?.logotipo ? ( - {entity?.razon_social + {logoUrl ? ( + {entity?.razon_social ) : ( -
- +
+
)} - {(!entity?.logotipo || entity?.mostrar_texto_logo) && ( + {(!logoUrl || entity?.mostrar_texto_logo) && (

{entity?.razon_social || "Almeira PRO"}

diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index 2260e56..98d0eff 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -11,6 +11,13 @@ export const Navbar = ({ entity }: { entity?: any }) => { const [user, setUser] = useState(null); const pathname = usePathname(); + const ENDPOINT = process.env.NEXT_PUBLIC_APPWRITE_ENDPOINT || 'https://appwrite.almeira.com.co/v1'; + const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c'; + let logoUrl = entity?.logotipo || null; + if (logoUrl && !logoUrl.startsWith('http') && !logoUrl.startsWith('/')) { + logoUrl = `${ENDPOINT}/storage/buckets/media/files/${logoUrl}/view?project=${PROJECT_ID}`; + } + useEffect(() => { const handleScroll = () => setScrolled(window.scrollY > 20); window.addEventListener('scroll', handleScroll); @@ -41,10 +48,10 @@ export const Navbar = ({ entity }: { entity?: any }) => { {/* Brand Logo Holográfico */} - {entity?.logotipo ? ( + {logoUrl ? (
- {entity?.razon_social + {entity?.razon_social
) : (
@@ -55,7 +62,7 @@ export const Navbar = ({ entity }: { entity?: any }) => {
)} - {(!entity?.logotipo || entity?.mostrar_texto_logo) && ( + {(!logoUrl || entity?.mostrar_texto_logo) && ( {entity?.razon_social ? ( entity.razon_social.split(' ').map((word: string, i: number, arr: string[]) => diff --git a/src/components/TopBanner.tsx b/src/components/TopBanner.tsx index 8487cda..11e67a2 100644 --- a/src/components/TopBanner.tsx +++ b/src/components/TopBanner.tsx @@ -58,13 +58,13 @@ export default function TopBanner({ initialBanners, rotationSeconds }: { initial {/* Metric Impression Observer resets key on change to fire new impression */} -
+
{/* eslint-disable-next-line @next/next/no-img-element */} {activeBanner.titulo} {activeBanner.url_destino && (