import { AppWindow } from "lucide-react";

import { ListPageCard } from "@/app/dashboard/_components";
import { fetchBackendPermissionCatalog } from "@/app/dashboard/admins/access/permissions/_lib/permissions-server-api";

import { AppModulesPageClient } from "./_components/app-modules-page-client";
import { fetchBackendRbacModules } from "./_lib/app-modules-server-api";

export default async function AppModulesPage() {
  const [{ catalog, errorMessage }, { modules, errorMessage: modulesErrorMessage }] =
    await Promise.all([fetchBackendPermissionCatalog(), fetchBackendRbacModules()]);

  return (
    <ListPageCard
      icon={AppWindow}
      title="App Modules"
      description="Manage backend modules and the permissions assigned to each module."
      breadcrumb={[
        { label: "Admins & Access", href: "/dashboard/admins/users" },
        { label: "App Modules" },
      ]}
    >
      <AppModulesPageClient
        initialCatalog={catalog}
        initialErrorMessage={errorMessage}
        initialModules={modules}
        initialModulesErrorMessage={modulesErrorMessage}
      />
    </ListPageCard>
  );
}
