feat: allow compliance data selection by choosing a scan

This commit is contained in:
Pablo Lara
2024-11-18 09:07:07 +01:00
parent 783db5c3dc
commit 223073e3df
2 changed files with 21 additions and 2 deletions
+13 -1
View File
@@ -45,10 +45,22 @@ export default async function Compliance({
const SSRComplianceGrid = async ({ scanId }: { scanId: string }) => {
const compliancesData = await getCompliancesOverview({ scanId });
// Check if the response contains no data
if (!compliancesData || compliancesData?.data?.length === 0) {
return (
<div className="flex h-full items-center justify-center">
<div className="text-default-500">
No compliance data available for the selected scan.
</div>
</div>
);
}
// Handle errors returned by the API
if (compliancesData?.errors?.length > 0) {
return (
<div className="flex h-full items-center justify-center">
<div className="text-default-500">There is no compliance data.</div>
<div className="text-default-500">Provide a valid scan ID.</div>
</div>
);
}
@@ -11,7 +11,14 @@ interface DataComplianceProps {
export const DataCompliance = ({ scans }: DataComplianceProps) => {
const router = useRouter();
const searchParams = useSearchParams();
const selectedScanId = searchParams.get("scanId") || scans[0]?.id;
const scanIdParam = searchParams.get("scanId");
const selectedScanId =
scanIdParam === "undefined" || !scanIdParam ? scans[0]?.id : scanIdParam;
if (scanIdParam === "undefined") {
router.replace("/compliance");
return null;
}
const handleSelectionChange = (selectedKey: string) => {
router.push(`?scanId=${selectedKey}`);