110 lines
2.3 KiB
Swift
110 lines
2.3 KiB
Swift
//
|
|
// 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
|
|
|
|
@ViewBuilder 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
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|