"use client";
import { useState } from "react";
import { requestSuperUser } from "./actions";
interface Props {
pendingRequest: { createdAt: Date; status: string } | null;
}
export function SuperUserRequestForm({ pendingRequest }: Props) {
const [submitted, setSubmitted] = useState(false);
const [error, setError] = useState("");
const [pending, setPending] = useState(false);
if (pendingRequest) {
const isPending = pendingRequest.status === "PENDING";
const isApproved = pendingRequest.status === "APPROVED";
return (
{isPending && "Your SuperUser access request is pending admin review."}
{isApproved && "Your SuperUser access request was approved."}
{!isPending && !isApproved && "Your SuperUser access request was not approved."}
);
}
if (submitted) {
return (
Your request has been submitted. An admin will review it shortly.
);
}
async function handleSubmit(e: React.FormEvent) {
e.preventDefault();
setPending(true);
setError("");
const result = await requestSuperUser(new FormData(e.currentTarget));
setPending(false);
if ("error" in result) setError(result.error);
else setSubmitted(true);
}
return (
);
}