Web: Chargen auswaehlen und Lagerort der Auswahl setzen

Chargenliste bekommt Auswahl-Checkboxen. Das obere Panel wirkt jetzt auf die
Auswahl: "N ausgewaehlt -> Lagerort setzen" (leer = Ort entfernen, z.B. beim
Aufloesen eines Orts). Schnellwahl "alle sichtbaren" (respektiert Filter) und
"alle ohne Lagerort". DataTable meldet dafuer die sichtbaren Zeilen
(onVisibleRows).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-29 14:04:19 +02:00
parent 826f4df4bd
commit 51c02091ed
2 changed files with 59 additions and 11 deletions

View File

@@ -29,6 +29,7 @@ function savePersisted(id, data) {
export default function DataTable({
id, columns, rows, getRowKey, rowClassName,
empty = "Nichts gefunden.", loading = false, toolbarExtra = null, tree = null,
onVisibleRows = null,
}) {
const colByKey = useMemo(() => Object.fromEntries(columns.map((c) => [c.key, c])), [columns]);
@@ -218,6 +219,15 @@ export default function DataTable({
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [treeActive, treeData, flat, collapsed]);
// Sichtbare (gefilterte/sortierte) Zeilen nach außen melden z.B. damit eine
// Seite „alle sichtbaren auswählen" anbieten kann. Ref, damit eine inline
// übergebene Funktion keine Endlosschleife auslöst.
const onVisibleRef = useRef(onVisibleRows);
onVisibleRef.current = onVisibleRows;
useEffect(() => {
onVisibleRef.current?.(displayRows.map((d) => d.row));
}, [displayRows]);
function toggleSort(c) {
if (!c.sortValue && !c.filterText) return;
setSort((s) => {