"use client"; import { useState } from "react"; import { LighthouseContextContributor } from "@/components/lighthouse/context-contributor"; import { ResourceDetailsSheet } from "@/components/resources/resource-details-sheet"; import { DataTable } from "@/components/shadcn/table"; import { buildResourceSummaryContext } from "@/lib/lighthouse/context/contributions"; import { MetaDataProps, ResourceProps } from "@/types"; import { getColumnResources } from "./column-resources"; interface ResourcesTableWithSelectionProps { data: ResourceProps[]; metadata?: MetaDataProps; initialResource?: ResourceProps | null; } export function ResourcesTableWithSelection({ data, metadata, initialResource = null, }: ResourcesTableWithSelectionProps) { const safeData = data ?? []; const [selectedResource, setSelectedResource] = useState(initialResource); const [drawerOpen, setDrawerOpen] = useState(Boolean(initialResource)); const openDrawer = (resource: ResourceProps) => { setSelectedResource(resource); setDrawerOpen(true); }; const columns = getColumnResources({ onViewDetails: openDrawer }); return ( <> {metadata?.pagination.count !== undefined && ( )} openDrawer(row.original)} /> {selectedResource && ( { setDrawerOpen(open); if (!open) setSelectedResource(null); }} /> )} ); }