getting undefined from server action
Answered
Britannia Petite posted this in #help-forum
Britannia PetiteOP
im passing a deleteBetaKey server function (from server side page) to a client component and in the handleDeleteBetaKey where i await the result from the server function, it returns undefined
Answered by Britannia Petite
fix was to do
return NextResponse.next({
request: { headers: requestHeaders}
});
6 Replies
Britannia PetiteOP
/server/betakey.ts
"use server";
....
export const deleteBetaKey = async (id: string) => {
const isAdmin = await useAdmin();
if (!isAdmin) {
return {
success: false,
message: "You are not authorized to delete beta keys",
};
}
const key = await db.select().from(betaKey).where(eq(betaKey.id, id));
if (!key) {
return {
success: false,
message: "Beta key not found",
};
}
await db.delete(betaKey).where(eq(betaKey.id, id));
return {
success: true,
message: "Beta key deleted successfully",
};
};
now when i pass this functionf from a server side component to a client one
this is undefined
const handleDelete = async () => {
const result = await deleteBetaKey(id);
console.log(result);
};
this is undefined
the function is passed as :
deleteBetaKey: (id: string) => Promise<{ success: boolean; message: string }>;
Britannia PetiteOP
middleware.ts
import { getSessionCookie } from "better-auth/cookies";
import { NextRequest, NextResponse } from "next/server";
export async function middleware(request: NextRequest) {
const sessionCookie = getSessionCookie(request, {
cookiePrefix: "DO-NOT-SHARE-rage",
});
const requestHeaders = new Headers(request.headers);
if (request.url.includes("/dashboard")) {
requestHeaders.set("x-url", request.url);
}
if (!sessionCookie) {
return NextResponse.redirect(new URL("/auth/login", request.url));
}
return NextResponse.next({ headers: requestHeaders });
}
export const config = {
matcher: ["/dashboard/:path*"],
};
could it be the middleware?
Britannia PetiteOP
fix was to do
return NextResponse.next({
request: { headers: requestHeaders}
});
Answer