From 82f02c0772a08be5d414163b21294be7b87ce5b4 Mon Sep 17 00:00:00 2001 From: s8613 Date: Tue, 24 Jun 2025 11:40:04 +0200 Subject: [PATCH] Fixed page highlighting in multiple kpis details page. --- project/frontend/public/favicon.ico | Bin 0 -> 16398 bytes .../extractedResult_.$pitchBook.$kpi.tsx | 27 ++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 project/frontend/public/favicon.ico diff --git a/project/frontend/public/favicon.ico b/project/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df1c62acb26f75bee1ac035dddb6497091e77921 GIT binary patch literal 16398 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 literal 0 HcmV?d00001 diff --git a/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx b/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx index 1f2abef..69e226c 100644 --- a/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx +++ b/project/frontend/src/routes/extractedResult_.$pitchBook.$kpi.tsx @@ -68,6 +68,7 @@ function ExtractedResultsPage() { const [customValue, setCustomValue] = useState(""); const [customPage, setCustomPage] = useState(""); const [editingCustomPage, setEditingCustomPage] = useState(false); + const [focusHighlightOverride, setFocusHighlightOverride] = useState<{ page: number; text: string } | null>(null); const originalValue = kpiValues[0]?.entity || ""; const originalPage = kpiValues[0]?.page || 0; @@ -102,6 +103,11 @@ function ExtractedResultsPage() { // Um zu prüfen, ob der Wert nur aus Leerzeichen besteht const isSelectedValueEmpty = selectedIndex === -1 ? customValue.trim() === "" : !selectedValue; + const focusHighlight = focusHighlightOverride || { + page: groupedKpiValues.at(selectedIndex)?.pages[0] || -1, + text: groupedKpiValues.at(selectedIndex)?.entity || "", + }; + useEffect(() => { const valueChanged = selectedValue !== originalValue; const pageChanged = selectedPage !== originalPage; @@ -159,12 +165,14 @@ function ExtractedResultsPage() { const value = event.target.value; if (value === "custom") { setSelectedIndex(-1); + setFocusHighlightOverride(null); } else { const index = Number.parseInt(value); setSelectedIndex(index); setCurrentPage(groupedKpiValues[index].pages[0]); setCustomValue(""); setCustomPage(""); + setFocusHighlightOverride(null); } }; @@ -174,7 +182,7 @@ function ExtractedResultsPage() { const value = event.target.value; setCustomValue(value); setSelectedIndex(-1); - }; + setFocusHighlightOverride(null); const handleCustomPageChange = ( event: React.ChangeEvent, @@ -191,6 +199,15 @@ function ExtractedResultsPage() { setSelectedIndex(index); setCustomValue(""); setCustomPage(""); + setFocusHighlightOverride(null); + }; + + const handlePageClick = (page: number, entity: string) => { + setCurrentPage(page); + setFocusHighlightOverride({ + page: page, + text: entity, + }); }; const handleBackClick = () => { @@ -325,7 +342,7 @@ function ExtractedResultsPage() { component="button" onClick={(e: React.MouseEvent) => { e.stopPropagation(); - setCurrentPage(page); + handlePageClick(page, item.entity); }} sx={{ cursor: "pointer", ml: i > 0 ? 1 : 0 }} > @@ -351,6 +368,7 @@ function ExtractedResultsPage() { }} onClick={() => { setSelectedIndex(-1); + setFocusHighlightOverride(null); }} > k.pages.map((page: number) => ({ page, text: k.entity }))) .reduce((acc, val) => acc.concat(val), [])} - focusHighlight={{ - page: groupedKpiValues.at(selectedIndex)?.pages[0] || -1, - text: groupedKpiValues.at(selectedIndex)?.entity || "", - }} + focusHighlight={focusHighlight} />