import React, { useEffect, useState } from 'react'; import axios from 'axios'; import { Card, CardContent, CardHeader, CardTitle } from '@/Components/ui/card'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/Components/ui/tabs'; import { Button } from "@/Components/ui/button"; import { Alert, AlertDescription } from '@/Components/ui/alert'; import { ShieldAlert, ChevronLeft, ChevronRight } from 'lucide-react'; import Markdown from 'react-markdown'; import { SecuritySummaryReportResultType, SecuritySummaryResponseType, } from '@/types/security-summary'; import VulnerabilitiesActiveCard from "@/Components/Dashboard/Vulnerabilities/VulnerabilitiesActiveCard"; import VulnerabilitiesPassiveCard from "@/Components/Dashboard/Vulnerabilities/VulnerabilitiesPassiveCard"; import SecurityScoresOverviewBarChart from "@/Components/SecurityScoresOverviewBarChart"; import ServicesPortExposureCard from "@/Components/Dashboard/Services/ServicesPortExposureCard"; import DashboardHeader from "@/Components/Dashboard/DashboardHeader"; import OverviewNetworkAssetsCard from "@/Components/Dashboard/Overview/OverviewNetworkAssetsCard"; import OverviewSimilarDomainsCard from "@/Components/Dashboard/Overview/OverviewSimilarDomainsCard"; import OverviewEmailSecurityCard from "@/Components/Dashboard/Overview/OverviewEmailSecurityCard"; import OverviewCertificatesCard from "@/Components/Dashboard/Overview/OverviewCertificatesCard"; import OverviewDataLeaksCard from "@/Components/Dashboard/Overview/OverviewDataLeaksCard"; import ServicesWafCard from "@/Components/Dashboard/Services/ServicesWafCard"; import ServicesCdnCard from "@/Components/Dashboard/Services/ServicesCdnCard"; import LeaksEnumerationCard from "@/Components/Dashboard/Leaks/LeaksEnumerationCard"; import LeaksResolvedCard from "@/Components/Dashboard/Leaks/LeaksResolvedCard"; import LeaksUnresolvedCard from "@/Components/Dashboard/Leaks/LeaksUnresolvedCard"; import OverviewVulnerabilityScoreCard from "@/Components/Dashboard/Overview/OverviewVulnerabilityScoreCard"; export default function Dashboard({ page }: { page:number }) { const [securitySummaryResponse, setSecuritySummaryResponse] = useState(null); const [reportData, setReportData] = useState(null); const [currentPage, setCurrentPage] = useState(page); useEffect(() => { axios.get('/api/v1/security/summary') .then(response => { setSecuritySummaryResponse(response.data); setReportData(response.data.results[0] ?? null); }) .catch(error => { console.error("Error fetching the report data", error); }); }, []); useEffect(() => { if (securitySummaryResponse) { setReportData(securitySummaryResponse.results[currentPage] ?? null); } }, [currentPage, securitySummaryResponse]); const handlePrevPage = () => { setCurrentPage(prev => Math.max(0, prev - 1)); }; const handleNextPage = () => { if (securitySummaryResponse) { setCurrentPage(prev => Math.min(securitySummaryResponse.results.length - 1, prev + 1)); } }; if (!reportData) return
Loading...
; return (
Overview Vulnerabilities Exposed Services Data Leaks

Overview

Security Summary EN IT {reportData.summary_text_en} {reportData.summary_text}

Data Leaks Details

Data Leaks Details

Data Leaks Details

Page {currentPage + 1} of {securitySummaryResponse?.results.length}
); };