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. 4
      Music/Views/TrackContextMenuModifier.swift

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

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

Loading…
Cancel
Save