fix: stable view identity in TrackContextMenuModifier, remove @Sendable from config closures

feat/music-streaming
Laurent 1 month ago
parent 8920cad499
commit cce5779430
  1. 6
      Music/Models/TrackContextMenuConfig.swift
  2. 6
      Music/Views/TrackContextMenuModifier.swift

@ -2,7 +2,7 @@ nonisolated struct TrackContextMenuConfig {
let playlists: [Playlist] let playlists: [Playlist]
let lastUsedPlaylistName: String? let lastUsedPlaylistName: String?
let selectedPlaylist: Playlist? let selectedPlaylist: Playlist?
let onAddToPlaylist: @Sendable (Track, Playlist) -> Void let onAddToPlaylist: (Track, Playlist) -> Void
let onAddToLastPlaylist: (@Sendable (Track) -> Void)? let onAddToLastPlaylist: ((Track) -> Void)?
let onRemoveFromPlaylist: (@Sendable (Track) -> Void)? let onRemoveFromPlaylist: ((Track) -> Void)?
} }

@ -7,8 +7,8 @@ struct TrackContextMenuModifier: ViewModifier {
let config: TrackContextMenuConfig? let config: TrackContextMenuConfig?
func body(content: Content) -> some View { func body(content: Content) -> some View {
if let track, let config { content.contextMenu {
content.contextMenu { if let track, let config {
if let lastPlaylistName = config.lastUsedPlaylistName, if let lastPlaylistName = config.lastUsedPlaylistName,
let onAddToLastPlaylist = config.onAddToLastPlaylist { let onAddToLastPlaylist = config.onAddToLastPlaylist {
Button("Add to \(lastPlaylistName)") { Button("Add to \(lastPlaylistName)") {
@ -35,8 +35,6 @@ struct TrackContextMenuModifier: ViewModifier {
} }
} }
} }
} else {
content
} }
} }
} }

Loading…
Cancel
Save