Changelog
Release history for the react-youtube-jukebox package. This page mirrors the CHANGELOG.md shipped inside the npm tarball and the GitHub Releases page.
v2.0.0 — 2026-04-19
Breaking changes
- shuffle / repeat controls removed — shuffle, toggleShuffle, repeat, and cycleRepeat were removed from JukeboxPlayerState and the expanded render props. If you relied on the built-in controls, manage that state in your app and drive currentIndex yourself.
- RepeatMode type no longer exported — The RepeatMode type is no longer part of the public API.
- JukeboxExpandedRenderProps no longer omits fields — Custom expanded renderers should drop references to shuffle, toggleShuffle, repeat, and cycleRepeat.
- Internal module layout reorganized — Components moved to src/domains/<feature>/components/*, and shared types now live in src/lib/types.ts (the old src/lib/shared.ts barrel is gone). Only import from the package entry point — deep imports will break.
Added
- onError callback — Jukebox, PlayList, useJukebox, and usePlayList now accept onError for surfacing YouTube player errors.
- accentColor prop on PlayList — Theme the active track highlight without overriding the whole palette.
- ProgressSlider and VolumeSlider — Building blocks used by the default player UI are now available for reuse.
- Focused hooks extracted from useJukeboxPlayer — useJukeboxKeyboardShortcuts and useYouTubePlayerLifecycle isolate keyboard behavior and the YouTube IFrame lifecycle.
- New playlist layout pieces — PlayListHeader, PlayListMiniBar, PlayListNav, PlayListTabs, and PlayListSectionsCommon replace the old monolithic sections component.
Changed
- Feature/domain directory layout — Source is now organized under src/domains/jukebox/* and src/domains/playlist/* for clearer cohesion.
- useJukeboxPlayer split by responsibility — The YouTube IFrame lifecycle was moved to useYouTubePlayerLifecycle; useJukeboxPlayer became significantly smaller.
- PlayListTrackList uses TrackRow — The track row was extracted into its own component to avoid re-rendering the entire list on small updates.
- Track list scroll resets on playlist switch — Switching between playlists no longer preserves the stale scroll offset from the previous list.
Removed
- Legacy PlayListSections.tsx — Replaced by PlayListSectionsCommon plus the new layout components.
- src/lib/shared.ts — Internal barrel removed. The public API continues to be re-exported from the package entry.