GitHub
Language
DocsChangelog

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.

CHANGELOG.md (source of truth) · GitHub Releases

v2.0.0 2026-04-19

Breaking changes

  • shuffle / repeat controls removedshuffle, 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 exportedThe RepeatMode type is no longer part of the public API.
  • JukeboxExpandedRenderProps no longer omits fieldsCustom expanded renderers should drop references to shuffle, toggleShuffle, repeat, and cycleRepeat.
  • Internal module layout reorganizedComponents 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 callbackJukebox, PlayList, useJukebox, and usePlayList now accept onError for surfacing YouTube player errors.
  • accentColor prop on PlayListTheme the active track highlight without overriding the whole palette.
  • ProgressSlider and VolumeSliderBuilding blocks used by the default player UI are now available for reuse.
  • Focused hooks extracted from useJukeboxPlayeruseJukeboxKeyboardShortcuts and useYouTubePlayerLifecycle isolate keyboard behavior and the YouTube IFrame lifecycle.
  • New playlist layout piecesPlayListHeader, PlayListMiniBar, PlayListNav, PlayListTabs, and PlayListSectionsCommon replace the old monolithic sections component.

Changed

  • Feature/domain directory layoutSource is now organized under src/domains/jukebox/* and src/domains/playlist/* for clearer cohesion.
  • useJukeboxPlayer split by responsibilityThe YouTube IFrame lifecycle was moved to useYouTubePlayerLifecycle; useJukeboxPlayer became significantly smaller.
  • PlayListTrackList uses TrackRowThe track row was extracted into its own component to avoid re-rendering the entire list on small updates.
  • Track list scroll resets on playlist switchSwitching between playlists no longer preserves the stale scroll offset from the previous list.

Removed

  • Legacy PlayListSections.tsxReplaced by PlayListSectionsCommon plus the new layout components.
  • src/lib/shared.tsInternal barrel removed. The public API continues to be re-exported from the package entry.