"use client";

import type { ReactNode } from "react";

export const MAX_UPLOAD_BYTES = 20 * 1024 * 1024;

type AdminFileFormProps = {
  action: (formData: FormData) => Promise<void>;
  children: ReactNode;
  className?: string;
};

export function AdminFileForm({ action, children, className }: AdminFileFormProps) {
  return (
    <form
      action={action}
      className={className}
      onSubmit={(event) => {
        const fileInput = event.currentTarget.querySelector('input[type="file"]') as HTMLInputElement | null;
        const file = fileInput?.files?.[0];

        if (file && file.size > MAX_UPLOAD_BYTES) {
          event.preventDefault();
          window.alert(`"${file.name}" is too large. Maximum size is 20 MB per file.`);
        }
      }}
    >
      {children}
    </form>
  );
}
