import { getTranslations } from "next-intl/server"; import { controlClass, Field, primaryButtonClass } from "@/components/customers/form-ui"; /** * Plain multipart form (works without JavaScript) posting to /documents/upload, which redirects * back to `returnTo` with ?docOk=1 or ?docError= (see UploadFeedback). */ export async function DocumentUploadForm({ returnTo, links = {}, lineageId, categories, visibilities, defaultCategory = "other", defaultVisibility = "team", heading, }: { returnTo: string; links?: { customerId?: string; siteId?: string; workOrderId?: string }; lineageId?: string; categories: string[]; visibilities: string[]; defaultCategory?: string; defaultVisibility?: string; heading?: string; }) { const t = await getTranslations("documents"); const idp = lineageId ? `v-${lineageId.slice(0, 6)}` : "up"; return (
{heading &&

{heading}

} {links.customerId && } {links.siteId && } {links.workOrderId && } {lineageId && }
); } /** Result banner of the upload redirect. */ export async function UploadFeedback({ ok, error }: { ok?: string; error?: string }) { if (!ok && !error) return null; const t = await getTranslations("documents"); if (ok) { return (

{t("upload.ok")}

); } const key = t.has(`uploadErrors.${error}`) ? `uploadErrors.${error}` : "uploadErrors.generic"; return (

{t(key)}

); }