diff --git a/app/(content)/(home)/home/page.tsx b/app/(content)/(home)/home/page.tsx index 836569df382b537be8f63fd9708c688694046e6f..89b396f4341ea318704cef9796da60f2877b1a86 100644 --- a/app/(content)/(home)/home/page.tsx +++ b/app/(content)/(home)/home/page.tsx @@ -2,6 +2,7 @@ import LikeButton from "@/components/like-button"; import PostMessageForm from "@/components/post-messages"; import { prisma } from "@/lib/db"; import { Prisma } from "@prisma/client"; +/* export const revalidate = 5; */ // revalidate this page every 60 seconds type messageType = Prisma.PostUncheckedCreateInput type messageItemProps = { diff --git a/app/api/messages/route.ts b/app/api/messages/route.ts index e1ed88082e58806233a3c22405a3ff8a04cb30f8..c5eecd2adf82a3e5801c6e7c537752315a347dce 100644 --- a/app/api/messages/route.ts +++ b/app/api/messages/route.ts @@ -3,10 +3,11 @@ import { NextRequest, NextResponse } from "next/server" import { getServerSession } from "next-auth/next" import { authOptions } from "../auth/[...nextauth]/route"; import { Prisma } from "@prisma/client"; +import { revalidatePath, revalidateTag } from "next/cache"; + type post = Prisma.PostUncheckedCreateInput export async function POST(req: NextRequest) { - const session = await getServerSession(authOptions); if (!session) { @@ -14,11 +15,9 @@ export async function POST(req: NextRequest) { } const userId = session.user.id - const data = await req.json() - - console.log("router data: " + data, "status:") + console.log("router data: " + data.content, "status:") try { await prisma.post.create({ @@ -30,6 +29,8 @@ export async function POST(req: NextRequest) { } }) console.log("created") + const path = req.nextUrl.searchParams.get('path') || '/'; + revalidatePath(path); return NextResponse.json({ status: 201, message: 'Message Created' }) @@ -40,10 +41,13 @@ export async function POST(req: NextRequest) { } export async function GET(req: NextRequest, res: NextResponse) { - const data = await req.json() - console.log("router data: " + data, "status:") + try { + const data = await req.json() + console.log("router data: " + data, "status:") + } catch (error) { + + } - console.log(data) try { const messages = await prisma.post.findMany({ orderBy: { diff --git a/components/post-messages.tsx b/components/post-messages.tsx index 96bf8e193771593847688fb45c175a3a4e7697a1..a870e16e391d2d34bd17b962d7f1c189486fd24a 100644 --- a/components/post-messages.tsx +++ b/components/post-messages.tsx @@ -14,11 +14,12 @@ export default function PostMessageForm(props: { data: Post[] | null }) { async function postMessage(e: any) { e.preventDefault() console.log(formData) -/* formData.userId = 1 */ const response = await fetch('http://localhost:3000/api/messages', { method: 'POST', - body: JSON.stringify(formData) + body: JSON.stringify(formData), + next: { tags: ['collection'] } }) + startTransition(() => { // Refresh the current route and fetch new data from the server without // losing client-side browser or React state.