Files
neta/app/portal/projects/[id]/actions.ts
T

30 lines
994 B
TypeScript

"use server";
import { revalidatePath } from "next/cache";
import { cleanText } from "@/server/web/form-data";
import { resolvePortalLocale } from "@/server/i18n/resolver";
import { requirePortalBackend } from "@/server/web/portal";
export async function createRevisionRequest(projectId: string, formData: FormData) {
try {
const { actor, context, service } = await requirePortalBackend();
const locale = await resolvePortalLocale(context);
const description = cleanText(formData.get("description"));
if (!description) return { errorKey: "portal.revision.errors.descriptionRequired" };
service.requestRevision(actor, {
projectId,
description,
sourceLocale: locale.locale,
});
revalidatePath(`/portal/projects/${projectId}`);
revalidatePath("/portal/revisions");
return { success: true };
} catch (error) {
console.error("Portal revision request failed", error);
return {
errorKey: "portal.revision.error",
};
}
}