diff --git a/app/(prowler)/compliance/page.tsx b/app/(prowler)/compliance/page.tsx index 8d3f8315f1..68a9a89dbe 100644 --- a/app/(prowler)/compliance/page.tsx +++ b/app/(prowler)/compliance/page.tsx @@ -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 ( +
+
+ No compliance data available for the selected scan. +
+
+ ); + } + + // Handle errors returned by the API if (compliancesData?.errors?.length > 0) { return (
-
There is no compliance data.
+
Provide a valid scan ID.
); } diff --git a/components/compliance/data-compliance/data-compliance.tsx b/components/compliance/data-compliance/data-compliance.tsx index 52484f6bd7..67e45f9ff4 100644 --- a/components/compliance/data-compliance/data-compliance.tsx +++ b/components/compliance/data-compliance/data-compliance.tsx @@ -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}`);