// // TimelineContextMenu.swift // NetNewsWire // // Created by Maurice Parker on 7/17/20. // Copyright © 2020 Ranchero Software. All rights reserved. // import SwiftUI struct TimelineContextMenu: View { @EnvironmentObject private var timelineModel: TimelineModel var timelineItem: TimelineItem var body: some View { if timelineModel.canMarkIndicatedArticlesAsRead(timelineItem) { Button { timelineModel.markIndicatedArticlesAsRead(timelineItem) } label: { Text("Mark as Read") #if os(iOS) AppAssets.readOpenImage #endif } } if timelineModel.canMarkIndicatedArticlesAsUnread(timelineItem) { Button { timelineModel.markIndicatedArticlesAsUnread(timelineItem) } label: { Text("Mark as Unread") #if os(iOS) AppAssets.readClosedImage #endif } } if timelineModel.canMarkIndicatedArticlesAsStarred(timelineItem) { Button { timelineModel.markIndicatedArticlesAsStarred(timelineItem) } label: { Text("Mark as Starred") #if os(iOS) AppAssets.starClosedImage #endif } } if timelineModel.canMarkIndicatedArticlesAsUnstarred(timelineItem) { Button { timelineModel.markIndicatedArticlesAsUnstarred(timelineItem) } label: { Text("Mark as Unstarred") #if os(iOS) AppAssets.starOpenImage #endif } } if timelineModel.canMarkAboveAsRead(timelineItem) { Button { timelineModel.markAboveAsRead(timelineItem) } label: { Text("Mark Above as Read") #if os(iOS) AppAssets.markAboveAsReadImage #endif } } if timelineModel.canMarkBelowAsRead(timelineItem) { Button { timelineModel.markBelowAsRead(timelineItem) } label: { Text("Mark Below As Read") #if os(iOS) AppAssets.markBelowAsReadImage #endif } } if timelineModel.canMarkAllAsReadInWebFeed(timelineItem) { Divider() Button { timelineModel.markAllAsReadInWebFeed(timelineItem) } label: { Text("Mark All as Read in “\(timelineItem.article.webFeed?.nameForDisplay ?? "")”") #if os(iOS) AppAssets.markAllAsReadImage #endif } } if timelineModel.canOpenIndicatedArticleInBrowser(timelineItem) { Divider() Button { timelineModel.openIndicatedArticleInBrowser(timelineItem) } label: { Text("Open in Browser") #if os(iOS) AppAssets.openInBrowserImage #endif } } } }