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 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.