import BreadCrumbLink from "@/layouts/shared/page.breadcrumbLink";
import { createRoleProtectedLoader } from "@/lib/features/protectedFetcher";
import { FEATURE_SLUGS, getCheckedAccess } from "@/lib/role-helpers";
import ReferralInvitesClientPage from "./_client";

export const handle = {
  breadcrumb: () => (
    <BreadCrumbLink
      links={[
        { label: "Member Referrals", to: "/admin/member-referrals" },
        { label: "Sign-ups" },
      ]}
    />
  ),
};

/*
 * The invite table can be very large, so nothing is fetched here — the client
 * pages it and loads analytics alongside. Same reasoning as the overview page.
 */
export const loader = createRoleProtectedLoader(
  FEATURE_SLUGS.promoCodes,
  "read",
  async ({ request }) => {
    const accessScope = getCheckedAccess(request, FEATURE_SLUGS.promoCodes);
    return { accessScope };
  },
);

const ReferralInvitesPage = () => <ReferralInvitesClientPage />;

export default ReferralInvitesPage;
