Song History and Favorites Management
This documentation covers the tracking of song playback history and the management of favorite songs within the playlist system.

Song History Management
The system automatically maintains a history of played songs to enhance the user experience and enable features like recently played lists.
addActiveSongInTheHistory()
Purpose: Track the playback history of songs.
Trigger:
- Automatically fires whenever the active song index changes in the store
- Captures song transitions during normal playback, skipping, or direct selection
Behavior:
- Adds the current active song to the playback history
- Maintains chronological order of played songs
- Creates a navigable listening history
Use Cases:
- Displaying "Recently Played" songs
- Enabling history-based navigation
- Generating personalized recommendations based on listening patterns
Favorites Management
The system allows users to mark songs as favorites for quick access and personalized collections.
addSongInTheFavourite()
Purpose: Add a song to the user's favorites collection.
Trigger:
- Dispatched when a user marks a song as favorite
- Can be triggered from any view displaying song information
Behavior:
- Adds the selected song to the favorites collection
- Updates all subscribed UI components to reflect the change
- Prevents duplicate entries in the favorites collection
Use Case:
- Creating a personalized collection of preferred songs
- Enabling quick access to frequently played content
removeSongFromFavourites()
Purpose: Remove a song from the user's favorites collection.
Trigger:
- Dispatched when a user removes a favorite status
- Can be triggered from any view displaying favorited songs
Behavior:
- Removes the selected song from the favorites collection
- Updates all subscribed UI components to reflect the change
- Maintains integrity of the remaining favorites collection
Use Case:
- Curating and refining the favorites collection
- Managing storage constraints
Data Flow and UI Updates
- History Updates:
- Song playback or selection triggers active song index change
addActiveSongInTheHistory()
automatically executes- History views refresh to show the updated playback history
- Favorites Management:
- User interacts with favorite/unfavorite UI controls
- System dispatches appropriate action (
addSongInTheFavourite()
orremoveSongFromFavourites()
) - All subscribed UI components update to reflect current favorites status
Implementation Notes
- History and favorites are maintained independently of the active playlist
- UI components subscribe to store updates to reflect current state
- Both features support persistent storage for maintaining state between sessions