diff --git a/web/src/components/CategorySelect.jsx b/web/src/components/CategorySelect.jsx
index 9019fd7..00c6892 100644
--- a/web/src/components/CategorySelect.jsx
+++ b/web/src/components/CategorySelect.jsx
@@ -1,6 +1,7 @@
import { useEffect, useLayoutEffect, useRef, useState } from "react";
import { createPortal } from "react-dom";
import Icon from "./Icon";
+import CategoryPathLabel from "./CategoryPathLabel";
/**
* Aufklappbarer Kategorie-Baum als Auswahlfeld – Ersatz für die früheren, mit
@@ -39,6 +40,23 @@ export default function CategorySelect({
const selectedId = !isRoot && !extra ? value : null;
const label = isRoot ? rootLabel : extra ? extra.label : nameById[selectedId] ?? rootLabel;
+ // Voller Pfad der gewählten Kategorie (Oberkategorien → Blatt), damit im
+ // geschlossenen Feld sichtbar bleibt, WELCHE „Früchte" gemeint sind (z.B.
+ // „TK → Früchte" statt nur „Früchte").
+ function pathPartsFor(id) {
+ const parts = [];
+ let cur = id;
+ const gesehen = new Set();
+ while (cur != null && idset.has(cur) && !gesehen.has(cur)) {
+ gesehen.add(cur);
+ parts.unshift(nameById[cur]);
+ cur = parentById[cur];
+ }
+ return parts;
+ }
+ const selectedParts = selectedId != null && nameById[selectedId] != null
+ ? pathPartsFor(selectedId) : null;
+
function place() {
const r = btnRef.current?.getBoundingClientRect();
if (r) setPos({ left: r.left, top: r.bottom + 4, width: r.width });
@@ -108,7 +126,9 @@ export default function CategorySelect({
aria-expanded={open}
onClick={() => setOpen((o) => !o)}
>
- {label}
+
+ {selectedParts ? : label}
+