"use client"; import { AppGridContent } from "@/modules/apps/components/app-grid-content"; import { useAppGridController } from "@/modules/apps/components/app-grid-controller"; import { AppGridContextMenu } from "@/modules/apps/components/app-grid-menu"; import type { AppActionTarget } from "@/modules/apps/components/app-grid-presenters"; import { UninstallAppDialog } from "@/modules/apps/components/uninstall-app-dialog"; import { X } from "@/components/icons/platform-icons"; export type { AppActionTarget } from "@/modules/apps/components/app-grid-presenters"; type AppGridProps = { iconSize?: "small" | "medium" | "large"; animationsEnabled?: boolean; onOpenDashboard?: (target: AppActionTarget) => void; onViewLogs?: (target: AppActionTarget) => void; onOpenTerminal?: (target: AppActionTarget) => void; onOpenSettings?: (target: AppActionTarget) => void; onCopyUrl?: (target: AppActionTarget) => void; }; export function AppGrid({ iconSize = "medium", animationsEnabled = true, onOpenDashboard, onViewLogs, onOpenTerminal, onOpenSettings, onCopyUrl, }: AppGridProps) { const controller = useAppGridController({ onCopyUrl, onOpenDashboard, onOpenSettings, onOpenTerminal, onViewLogs, }); return (
{controller.actionError ? (
{controller.actionError}
) : null} { void controller.openDashboardForApp(app); }} primaryOperation={controller.primaryOperation} /> {controller.contextMenu ? (
) : null} {controller.contextMenu && controller.menuApp ? ( { void controller.handleMenuAction(action); }} /> ) : null}
); }