"use client";

import type { Club } from "@/components/network-admin-client-config";
import { NetworkAdminShell } from "@/components/network-admin-shell";
import { useNetworkAdminClientForms } from "@/components/use-network-admin-client-forms";
import { useNetworkAdminClientState } from "@/components/use-network-admin-client-state";

type NetworkAdminClientProps = {
  initialClubs: Club[];
};

export function NetworkAdminClient({ initialClubs }: NetworkAdminClientProps) {
  const { clubs, setClubs, busy, message, messageTone, runMutation } = useNetworkAdminClientState(initialClubs);
  const { clubForm, setClubForm, venueForms, setVenueForms, machineForms, setMachineForms } = useNetworkAdminClientForms();

  return (
    <NetworkAdminShell
      clubs={clubs}
      setClubs={setClubs}
      busy={busy}
      message={message}
      messageTone={messageTone}
      runMutation={runMutation}
      clubForm={clubForm}
      setClubForm={setClubForm}
      venueForms={venueForms}
      setVenueForms={setVenueForms}
      machineForms={machineForms}
      setMachineForms={setMachineForms}
    />
  );
}
