diff --git a/.changes/workspace-playlist-info-menu-item.md b/.changes/workspace-playlist-info-menu-item.md
new file mode 100644
index 000000000..2a67ed63d
--- /dev/null
+++ b/.changes/workspace-playlist-info-menu-item.md
@@ -0,0 +1,8 @@
+---
+type: fix
+area: workspace
+---
+
+The playlist dropdown in the header shows a "Playlist info" entry for the
+active playlist again, next to "Account info" and "Add playlist" — it had
+disappeared when playlist actions moved into the per-row menu.
diff --git a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.html b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.html
index 3e70348aa..d662a4c60 100644
--- a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.html
+++ b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.html
@@ -202,16 +202,16 @@
}
- @if (showAddPlaylist() || showAccountInfo()) {
+ @if (showAddPlaylist() || showAccountInfo() || showPlaylistInfo()) {
- @if (showAddPlaylist()) {
+ @if (showPlaylistInfo()) {
}
@@ -226,6 +226,17 @@
}}
}
+ @if (showAddPlaylist()) {
+
+ }
}
diff --git a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts
index 2ee742ad7..9be63edc0 100644
--- a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts
+++ b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts
@@ -295,6 +295,38 @@ describe('PlaylistSwitcherComponent', () => {
expect(accountInfoSpy).toHaveBeenCalledTimes(1);
});
+ it('renders playlist info, account info, and add playlist context actions in the menu', async () => {
+ await createComponent();
+ fixture.componentRef.setInput('showPlaylistInfo', true);
+ fixture.componentRef.setInput('showAccountInfo', true);
+ fixture.componentRef.setInput('showAddPlaylist', true);
+ fixture.detectChanges();
+
+ const playlistInfoSpy = jest.fn();
+ component.playlistInfoRequested.subscribe(playlistInfoSpy);
+
+ component.menuTrigger().openMenu();
+ fixture.detectChanges();
+
+ const actionButtons = Array.from(
+ document.querySelectorAll(
+ '.context-actions-section .context-action-item'
+ )
+ );
+ const labels = actionButtons.map((button) =>
+ button.textContent?.trim()
+ );
+
+ expect(labels).toEqual([
+ expect.stringContaining('PLAYLIST_INFO'),
+ expect.stringContaining('ACCOUNT_INFO'),
+ expect.stringContaining('ADD_PLAYLIST'),
+ ]);
+
+ actionButtons[0].click();
+ expect(playlistInfoSpy).toHaveBeenCalledTimes(1);
+ });
+
it('opens the menu, syncs overlay width, and checks portal statuses for Xtream playlists', fakeAsync(async () => {
await createComponent();