// src/app/(app)/pages/page.tsx — inventaire des pages du site actif.
// Squelette RSC partagé avec backlink/overview : org → sites → siteId actif →
// fetch initial → <PagesView key={siteId}> (remount sur changement de site) +
// fallback sans site.
import { getTranslations } from "next-intl/server";
import { DashboardHeader } from "@/components/dashboard-header";
import { PagesView } from "@/components/pages/pages-view";
import {
  Breadcrumb,
  BreadcrumbItem,
  BreadcrumbList,
  BreadcrumbPage,
  BreadcrumbSeparator,
} from "@/components/ui/breadcrumb";
import { fetchSitePagesAction } from "@/lib/pages/actions";
import { getSitesForActiveOrg } from "@/lib/sites/access";
import { getActiveSiteId } from "@/lib/sites/active-site";

export default async function Page() {
  const t = await getTranslations("Pages");
  const sites = await getSitesForActiveOrg();
  const siteId = await getActiveSiteId(sites.map((s) => s.id));
  const initialPages = siteId ? await fetchSitePagesAction(siteId) : [];

  return (
    <>
      <DashboardHeader>
        <Breadcrumb>
          <BreadcrumbList>
            <BreadcrumbItem>{t("breadcrumb")}</BreadcrumbItem>
            <BreadcrumbSeparator />
            <BreadcrumbItem>
              <BreadcrumbPage>{t("inventory")}</BreadcrumbPage>
            </BreadcrumbItem>
          </BreadcrumbList>
        </Breadcrumb>
      </DashboardHeader>
      {/* key by site so a switch (router.refresh) remounts with fresh data */}
      {siteId ? (
        <PagesView key={siteId} siteId={siteId} initialPages={initialPages} />
      ) : (
        <div className="flex h-64 items-center justify-center text-muted-foreground">
          {t("noSites")}
        </div>
      )}
    </>
  );
}
