From 970ebe4581f350ac2965d9c6c0115ebc34a1ed05 Mon Sep 17 00:00:00 2001 From: "Carlos (Almeira)" Date: Wed, 1 Jul 2026 19:39:09 -0500 Subject: [PATCH] Fix delete session error and inline edit duplication bug --- src/app/api/publications/route.ts | 3 ++- src/app/dashboard/[entity]/page.tsx | 6 +++++- src/components/publications/PublicationDrawer.tsx | 7 ++++--- src/components/publications/PublicationsList.tsx | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/app/api/publications/route.ts b/src/app/api/publications/route.ts index e6b1137..8b6e8f2 100644 --- a/src/app/api/publications/route.ts +++ b/src/app/api/publications/route.ts @@ -34,7 +34,8 @@ async function requireAuth() { try { // Si es modo bypass (admin-emergency), no podemos llamar a account.get() con la API Key - const cookieStore = await require('@/lib/appwrite.server').cookies(); + const { cookies } = require('next/headers'); + const cookieStore = await cookies(); const PROJECT_ID = process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID || '69b84df5003bd8957c5c'; const sessionCookie = cookieStore.get(`a_session_${PROJECT_ID.toLowerCase()}`); diff --git a/src/app/dashboard/[entity]/page.tsx b/src/app/dashboard/[entity]/page.tsx index defb1c9..255ea8c 100644 --- a/src/app/dashboard/[entity]/page.tsx +++ b/src/app/dashboard/[entity]/page.tsx @@ -131,7 +131,11 @@ export default async function EntityPage({ console.error(`Error fetching entity ${entity}:`, error); } - const boundEditAction = saveEntityAction.bind(null, entity); + const boundEditAction = async (id: string, formData: FormData) => { + 'use server'; + const { updateEntityAction } = await import('@/app/actions/entities'); + return updateEntityAction(entity, id, formData); + }; return (
diff --git a/src/components/publications/PublicationDrawer.tsx b/src/components/publications/PublicationDrawer.tsx index 6c3972a..d633ef5 100644 --- a/src/components/publications/PublicationDrawer.tsx +++ b/src/components/publications/PublicationDrawer.tsx @@ -17,7 +17,7 @@ export interface PublicationDrawerProps { post: Post | null; user: AuthUser; relationData: Record>; - submitAction: (formData: FormData) => Promise<{ success: boolean; error?: string; data?: unknown } | void>; + submitAction: (id: string, formData: FormData) => Promise<{ success: boolean; error?: string; data?: unknown } | void>; appwriteConfig: { endpoint: string; projectId: string; @@ -64,12 +64,13 @@ export const PublicationDrawer: React.FC = ({ }, [isOpen, handleKeyDown]); const wrappedSubmit = useCallback(async (formData: FormData) => { - const result = await submitAction(formData); + if (!post?.$id) return { success: false, error: 'No post ID found' }; + const result = await submitAction(post.$id, formData); if (!result || result.success) { onSuccess?.(); } return result; - }, [submitAction, onSuccess]); + }, [submitAction, onSuccess, post]); if (typeof document === 'undefined') return null; diff --git a/src/components/publications/PublicationsList.tsx b/src/components/publications/PublicationsList.tsx index 3bf0837..29b81d1 100644 --- a/src/components/publications/PublicationsList.tsx +++ b/src/components/publications/PublicationsList.tsx @@ -35,7 +35,7 @@ interface PublicationsListProps { initialPosts: Post[]; user: AuthUser; relationData: Record>; - submitEditAction: (formData: FormData) => Promise<{ success: boolean; error?: string; data?: unknown } | void>; + submitEditAction: (id: string, formData: FormData) => Promise<{ success: boolean; error?: string; data?: unknown } | void>; appwriteConfig: { endpoint: string; projectId: string;