From e28ca988310453b8907ee983ada1f518245fa777 Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Tue, 15 Sep 2026 23:23:47 +0200 Subject: [PATCH] Give the tvOS New Playlist row air between icon and title A tvOS Label sets its plus glyph nearly against the text at this size; the row spells the gap out with an HStack there, shared by the local and remote sections. Other platforms keep the plain Label. --- .../Views/Video/PlaylistSelectorSheet.swift | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/Yattee/Views/Video/PlaylistSelectorSheet.swift b/Yattee/Views/Video/PlaylistSelectorSheet.swift index ce33d60b..2c861e60 100644 --- a/Yattee/Views/Video/PlaylistSelectorSheet.swift +++ b/Yattee/Views/Video/PlaylistSelectorSheet.swift @@ -239,15 +239,28 @@ struct PlaylistSelectorSheet: View { // MARK: - Sections + /// The "New Playlist" row's label. tvOS lays a `Label`'s icon nearly + /// against its title at this size, so the gap is spelled out there. + private var newPlaylistLabel: some View { + #if os(tvOS) + HStack(spacing: 20) { + Image(systemName: "plus.circle") + Text(String(localized: "playlist.new")) + } + #else + Label( + String(localized: "playlist.new"), + systemImage: "plus.circle" + ) + #endif + } + private var localSection: some View { Section { Button { showingNewPlaylist = true } label: { - Label( - String(localized: "playlist.new"), - systemImage: "plus.circle" - ) + newPlaylistLabel } if playlists.isEmpty { @@ -274,10 +287,7 @@ struct PlaylistSelectorSheet: View { Button { newRemotePlaylistAccount = account } label: { - Label( - String(localized: "playlist.new"), - systemImage: "plus.circle" - ) + newPlaylistLabel } if let remotePlaylists = appEnvironment?.remotePlaylistsCache.playlists(for: account.id) {