diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index 3b2d440..e56d803 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -109,8 +109,13 @@ export const Navbar = ({ entity }: { entity?: any }) => { {/* Menú Móvil Toggle */} diff --git a/src/components/NewsTicker.tsx b/src/components/NewsTicker.tsx index a6f57b0..1f22ff4 100644 --- a/src/components/NewsTicker.tsx +++ b/src/components/NewsTicker.tsx @@ -7,8 +7,14 @@ export default async function NewsTicker() { let noticias: any[] = []; try { - const sessionClient = await createSessionClient(); - if (!sessionClient) throw new Error("Anonymous context required"); // Nextjs might render this in public if we use anon client + // NewsTicker is public, we use admin client if session is not available + let client: any = await createSessionClient(); + if (!client) { + const { createAdminClient } = await import('@/lib/appwrite.server'); + client = await createAdminClient(); + } + + if (!client) throw new Error("No Appwrite client available"); // We need an Anonymous or Public read client if this is shown in home. // Since 'createSessionClient' uses the session cookie, we might have issues on public incognito pages. diff --git a/src/lib/appwrite.server.ts b/src/lib/appwrite.server.ts index d1163d4..f931662 100644 --- a/src/lib/appwrite.server.ts +++ b/src/lib/appwrite.server.ts @@ -33,6 +33,22 @@ export async function createSessionClient() { }; } +export async function createAdminClient() { + const client = new Client() + .setEndpoint(ENDPOINT) + .setProject(PROJECT_ID) + .setKey(process.env.APPWRITE_API_KEY || ''); + + return { + get account() { + return new Account(client); + }, + get databases() { + return new Databases(client); + } + }; +} + export async function getLoggedInUser() { const cookieStore = await cookies(); const sessionCookie = cookieStore.get('a_session_' + PROJECT_ID.toLowerCase());