import SwiftUI struct PostGridBookmarkButtonView: View { @ObservedObject var manager: BooruManager @EnvironmentObject private var settings: SettingsManager var contained: Bool { let lowercaseTags = manager.tags.map { $0.lowercased() } return settings.bookmarks .contains { bookmark in bookmark.tags == lowercaseTags && bookmark.provider == manager.provider } } var body: some View { Button( action: { contained ? settings .removeBookmark(withTags: manager.tags) : settings .addBookmark( provider: manager.provider, tags: manager.tags ) } ) { Label( "Bookmark", systemImage: contained ? "bookmark.fill" : "bookmark" ) } } }