import type { Dispatch, SetStateAction } from "react";
import type { ClubFormState } from "@/components/network-admin-client-config";
import { NetworkAdminCreateClubForm } from "@/components/network-admin-create-club-form";
import { NetworkAdminSectionHeader } from "@/components/network-admin-section-header";

type NetworkAdminCreateClubSectionProps = {
  busy: boolean;
  message: string | null;
  messageTone: "success" | "error";
  clubForm: ClubFormState;
  setClubForm: Dispatch<SetStateAction<ClubFormState>>;
  emptyClubForm: ClubFormState;
  cardClassName: string;
  runMutation: (task: () => Promise<void>, successMessage: string) => Promise<void>;
};

export function NetworkAdminCreateClubSection({
  busy,
  message,
  messageTone,
  clubForm,
  setClubForm,
  emptyClubForm,
  cardClassName,
  runMutation,
}: NetworkAdminCreateClubSectionProps) {
  return (
    <section className={cardClassName}>
      <NetworkAdminSectionHeader message={message} messageTone={messageTone} />

      <NetworkAdminCreateClubForm
        busy={busy}
        clubForm={clubForm}
        setClubForm={setClubForm}
        emptyClubForm={emptyClubForm}
        runMutation={runMutation}
      />
    </section>
  );
}
