refactor(cleaner-history): extract BatchItem with React.memo and fix colSpan bug
- Fix colSpan mismatch: material detail row now correctly spans 9 columns - Use lazy state initialization for Set/Map useState to avoid re-creation - Remove data-duplicating refs (batchExecutionsRef, batchOrdersRef, orderMaterialsRef) and replace with lightweight tracking refs (detailsLoadedRef, loadedMaterialsRef) - Extract per-batch rendering into BatchItem with React.memo to prevent sibling re-renders when expanding/collapsing one batch - Reduce parent component state from 13 to 5 variables Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in: