- Create new StreamWithViewer component to handle asset viewer lifecycle
and navigation
- Move beforeNavigate/afterNavigate hooks from Timeline to StreamWithViewer
- Extract asset viewer Portal rendering and close handler to wrapper
component
- Move timeline segment loading logic for viewed assets to StreamWithViewer
- Simplify Timeline component by removing ~76 lines of navigation/viewer
code
- Remove showSkeleton state management from Timeline (now handled by
PhotostreamWithScrubber)
This separation of concerns makes the Timeline component more focused on
rendering while StreamWithViewer handles all viewer-related navigation and state
management.The new component can be reused by other photostream-like components that
need asset viewer functionality.