Fix production build errors, static rendering, and eslint configuration
This commit is contained in:
parent
a17f989ba1
commit
8d377b0d7c
4
.eslintignore
Normal file
4
.eslintignore
Normal file
@ -0,0 +1,4 @@
|
||||
*.js
|
||||
/out
|
||||
/.next
|
||||
/node_modules
|
||||
Binary file not shown.
@ -12,6 +12,7 @@ const eslintConfig = defineConfig([
|
||||
"out/**",
|
||||
"build/**",
|
||||
"next-env.d.ts",
|
||||
"*.js",
|
||||
]),
|
||||
]);
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ const nextConfig: NextConfig = {
|
||||
experimental: {
|
||||
serverActions: {
|
||||
bodySizeLimit: (process.env.SERVER_ACTIONS_BODY_SIZE_LIMIT as any) || '100mb',
|
||||
allowedOrigins: ['almeiraproducciones.com', 'news.almeira.com.co', 'www.almeiraproducciones.com', 'localhost:3000'],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@ -58,10 +58,10 @@ async function fetchClasificadosData() {
|
||||
Query.equal('$id', mediaIds)
|
||||
]);
|
||||
const mediaMap = new Map<string, MediaItem>(mediaRes.documents.map(m => [m.$id, m as unknown as MediaItem]));
|
||||
posts = posts.map(p => ({
|
||||
posts = posts.map(p => JSON.parse(JSON.stringify({
|
||||
...p,
|
||||
resolved_media: mediaMap.get(p.imagen_destacada_id as string)
|
||||
}));
|
||||
})));
|
||||
} else {
|
||||
posts = JSON.parse(JSON.stringify(posts));
|
||||
}
|
||||
@ -78,7 +78,8 @@ export default async function ClasificadosPage() {
|
||||
const { posts, cardSettings } = await fetchClasificadosData();
|
||||
const hasSidebar = await hasSidebarContent();
|
||||
|
||||
const user = await getLoggedInUser();
|
||||
const rawUser = await getLoggedInUser();
|
||||
const user = rawUser ? JSON.parse(JSON.stringify(rawUser)) : null;
|
||||
const isAdmin = (user as any)?.labels?.includes('admin') || (user as any)?.labels?.includes('editor') || user?.$id === 'admin-emergency';
|
||||
|
||||
return (
|
||||
|
||||
@ -4,6 +4,8 @@ import { redirect } from 'next/navigation';
|
||||
import { ToastProvider } from '@/components/publications/ToastProvider';
|
||||
import { ErrorBoundary } from '@/components/publications/ErrorBoundary';
|
||||
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
export default async function DashboardLayout({
|
||||
children,
|
||||
}: {
|
||||
|
||||
@ -11,7 +11,8 @@ import {
|
||||
import Link from 'next/link';
|
||||
|
||||
export default async function DashboardPage() {
|
||||
const user = await getLoggedInUser();
|
||||
const rawUser = await getLoggedInUser();
|
||||
const user = rawUser ? JSON.parse(JSON.stringify(rawUser)) : null;
|
||||
let stats = {
|
||||
totalPosts: 0,
|
||||
totalMedia: 0,
|
||||
|
||||
@ -58,10 +58,10 @@ async function fetchEventosData() {
|
||||
Query.equal('$id', mediaIds)
|
||||
]);
|
||||
const mediaMap = new Map<string, MediaItem>(mediaRes.documents.map(m => [m.$id, m as unknown as MediaItem]));
|
||||
posts = posts.map(p => ({
|
||||
posts = posts.map(p => JSON.parse(JSON.stringify({
|
||||
...p,
|
||||
resolved_media: mediaMap.get(p.imagen_destacada_id as string)
|
||||
}));
|
||||
})));
|
||||
} else {
|
||||
posts = JSON.parse(JSON.stringify(posts));
|
||||
}
|
||||
@ -78,7 +78,8 @@ export default async function EventosPage() {
|
||||
const { posts, cardSettings } = await fetchEventosData();
|
||||
const hasSidebar = await hasSidebarContent();
|
||||
|
||||
const user = await getLoggedInUser();
|
||||
const rawUser = await getLoggedInUser();
|
||||
const user = rawUser ? JSON.parse(JSON.stringify(rawUser)) : null;
|
||||
const isAdmin = (user as any)?.labels?.includes('admin') || (user as any)?.labels?.includes('editor') || user?.$id === 'admin-emergency';
|
||||
|
||||
return (
|
||||
|
||||
@ -101,7 +101,8 @@ export default async function Home(props: { searchParams: Promise<{ [key: string
|
||||
const page = Number(searchParams?.page) || 1;
|
||||
const adminMonth = searchParams?.month ? Number(searchParams.month) : null;
|
||||
|
||||
const user = await getLoggedInUser();
|
||||
const rawUser = await getLoggedInUser();
|
||||
const user = rawUser ? JSON.parse(JSON.stringify(rawUser)) : null;
|
||||
const isAdmin = (user as any)?.labels?.includes('admin') || (user as any)?.labels?.includes('editor') || user?.$id === 'admin-emergency';
|
||||
|
||||
const { posts, cardSettings, totalPages } = await fetchHomeData(page, isAdmin, adminMonth);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { APPWRITE_ALMEIRA_CONFIG } from '@/lib/appwrite';
|
||||
import { createSessionClient } from '@/lib/appwrite.server';
|
||||
import { createAdminClient } from '@/lib/appwrite.server';
|
||||
import { Query } from 'node-appwrite';
|
||||
import Link from 'next/link';
|
||||
import { MessageCircle } from 'lucide-react';
|
||||
@ -11,12 +11,7 @@ export default async function NewsTicker() {
|
||||
let showNewsDate = true;
|
||||
|
||||
try {
|
||||
let client: any = await createSessionClient();
|
||||
if (!client) {
|
||||
const { createAdminClient } = await import('@/lib/appwrite.server');
|
||||
client = await createAdminClient();
|
||||
}
|
||||
|
||||
const client: any = await createAdminClient();
|
||||
if (!client) throw new Error("No Appwrite client available");
|
||||
|
||||
// 1. Fetch Settings
|
||||
|
||||
@ -77,6 +77,10 @@ export async function getLoggedInUser() {
|
||||
|
||||
return await sessionClient.account.get();
|
||||
} catch (error: any) {
|
||||
// Next.js uses a specific error to bailout of static generation. We MUST re-throw it.
|
||||
if (error?.digest === 'DYNAMIC_SERVER_USAGE' || error?.message?.includes('Dynamic server usage')) {
|
||||
throw error;
|
||||
}
|
||||
if (error?.code !== 401) {
|
||||
console.error("getLoggedInUser: Error al validar sesión:", error.message || error);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user