Phase 2: Split MainViewer Components
Goal
Why Do This First?
Problem: MainViewer Has Two Faces
if (hasOnlyRenderableImages) {
// Mode A: Virtualized image scrolling with FixedSizeList
return <FixedSizeList>{ItemRenderer}</FixedSizeList>;
}
// Mode B: Direct item rendering with IIIFItem components
return <>{displayItems.map(item => <IIIFItem />)}</>;Solution: Split into Separate Components
Implementation Steps
2.1 Create VirtualizedImageViewer.tsx
2.2 Create PaginatedItemViewer.tsx
2.3 Update MainViewer to Router Component
2.4 Write Tests for Each Component
2.5 Verify No Regressions
Testing Checklist
Other Candidates for Splitting (Future Work)
Success Criteria
Time Estimate
Last updated