diff --git a/project/frontend/src/components/KennzahlenTable.tsx b/project/frontend/src/components/KennzahlenTable.tsx index 420ed8f..c78bfbb 100644 --- a/project/frontend/src/components/KennzahlenTable.tsx +++ b/project/frontend/src/components/KennzahlenTable.tsx @@ -2,7 +2,7 @@ import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper, Box, Dialog, DialogActions, DialogContent, DialogTitle, - TextField, Button + TextField, Button, Link } from '@mui/material'; import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; import SearchIcon from '@mui/icons-material/Search'; @@ -15,11 +15,16 @@ import { { label: 'Fondsname', value: 'Fund Real Estate Prime Europe', page: 1, status: 'ok' }, { label: 'Fondsmanager', value: '', page: 1, status: 'error' }, { label: 'Risikoprofil', value: 'Core/Core+', page: 10, status: 'warning' }, - { label: 'LTV', value: '30-35 %', page: 8, status: 'ok' } + { label: 'LTV', value: '30-35 %', page: 8, status: 'ok' }, + { label: 'Ausschüttungsrendite', value: '4%', page: 34, status: 'ok' } ]; + interface KennzahlenTableProps { + onPageClick?: (page: number) => void; + } + // React-Komponente - export default function KennzahlenTable() { + export default function KennzahlenTable({ onPageClick }: KennzahlenTableProps) { // Zustand für bearbeitbare Daten const [rows, setRows] = useState(exampleData); @@ -100,7 +105,15 @@ import { {/* Seitenzahl */} - {row.page} + + onPageClick?.(row.page)} + sx={{ cursor: 'pointer' }} + > + {row.page} + + ); })} diff --git a/project/frontend/src/components/pdfViewer.tsx b/project/frontend/src/components/pdfViewer.tsx index 85649ed..7d9c158 100644 --- a/project/frontend/src/components/pdfViewer.tsx +++ b/project/frontend/src/components/pdfViewer.tsx @@ -9,11 +9,12 @@ import { socket } from "../socket"; interface PDFViewerProps { pitchBookId: string; + currentPage?: number; } -export default function PDFViewer({ pitchBookId }: PDFViewerProps) { +export default function PDFViewer({ pitchBookId, currentPage }: PDFViewerProps) { const [numPages, setNumPages] = useState(null); - const [pageNumber, setPageNumber] = useState(1); + const [pageNumber, setPageNumber] = useState(currentPage || 1); const [containerWidth, setContainerWidth] = useState(null); const [pdfKey, setPdfKey] = useState(Date.now()); const containerRef = useRef(null); @@ -34,6 +35,12 @@ export default function PDFViewer({ pitchBookId }: PDFViewerProps) { return () => window.removeEventListener("resize", updateWidth); }, []); + useEffect(() => { + if (currentPage && currentPage !== pageNumber) { + setPageNumber(currentPage); + } + }, [currentPage]); + useEffect(() => { const handleProgress = (data: { id: number; progress: number }) => { if (data.id.toString() === pitchBookId && data.progress === 50) { diff --git a/project/frontend/src/routes/extractedResult.$pitchBook.tsx b/project/frontend/src/routes/extractedResult.$pitchBook.tsx index 01cbebb..70d83df 100644 --- a/project/frontend/src/routes/extractedResult.$pitchBook.tsx +++ b/project/frontend/src/routes/extractedResult.$pitchBook.tsx @@ -1,6 +1,7 @@ import ContentPasteIcon from "@mui/icons-material/ContentPaste"; import { Box, Button, Paper, Typography } from "@mui/material"; import { createFileRoute, useNavigate } from "@tanstack/react-router"; +import { useState } from "react"; import KennzahlenTable from "../components/KennzahlenTable"; import PDFViewer from "../components/pdfViewer"; @@ -12,6 +13,7 @@ function ExtractedResultsPage() { const { pitchBook } = Route.useParams(); const navigate = useNavigate(); const status: "green" | "yellow" | "red" = "red"; + const [currentPage, setCurrentPage] = useState(1); const statusColor = { red: "#f43131", @@ -58,7 +60,7 @@ function ExtractedResultsPage() { overflow: "auto", }} > - + - +