Vite 8's rollup types no longer accept the object shorthand for
manualChunks. Switch to the function form which is compatible with
all Vite versions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
UI app:
- Add Vite manual chunks (vendor, antd, zustand) for better caching
- Wrap DownloadTaskItem with React.memo() to prevent list re-renders
- Wrap IconButton with React.memo() to prevent re-renders in lists
- Add missing Suspense fallback to SigninPage route
Player app:
- Add Vite manual chunks (videojs, vendor) to isolate video.js bundle
- Remove duplicate resize calculation in usePlayerSize hook
(ResizeObserver already handles container size changes)
- Disable SWR revalidateOnFocus/revalidateOnReconnect for video list
(list only changes when user adds/removes videos)
- Extract PlaylistItem into memoized component to prevent re-renders
when sibling items change, and eliminate duplicated rendering logic
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>