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",
}}
>
-
+
-
+