NetNewsWire/Multiplatform/Shared/Timeline/TimelineToolbarModifier.swift

58 lines
1.4 KiB
Swift
Raw Normal View History

//
2020-07-09 00:50:18 +02:00
// TimelineToolbarModifier.swift
// NetNewsWire
//
// Created by Maurice Parker on 7/5/20.
// Copyright © 2020 Ranchero Software. All rights reserved.
//
import SwiftUI
struct TimelineToolbarModifier: ViewModifier {
2020-07-18 11:58:46 +02:00
@EnvironmentObject private var sceneModel: SceneModel
@EnvironmentObject private var timelineModel: TimelineModel
2020-07-26 02:14:59 +02:00
@State private var isReadFiltered: Bool? = nil
func body(content: Content) -> some View {
content
.toolbar {
#if os(iOS)
ToolbarItem(placement: .primaryAction) {
Button {
2020-07-26 02:14:59 +02:00
if let filter = isReadFiltered {
timelineModel.changeReadFilterSubject.send(!filter)
}
} label: {
2020-07-26 02:14:59 +02:00
if isReadFiltered ?? false {
AppAssets.filterActiveImage.font(.title3)
} else {
AppAssets.filterInactiveImage.font(.title3)
}
}
2020-07-26 02:44:50 +02:00
.onReceive(timelineModel.readFilterAndFeedsPublisher!) { (_, filtered) in
isReadFiltered = filtered
}
2020-07-26 02:14:59 +02:00
.hidden(isReadFiltered == nil)
.help(isReadFiltered ?? false ? "Show Read Articles" : "Filter Read Articles")
2020-07-05 22:11:45 +02:00
}
ToolbarItem(placement: .bottomBar) {
Button {
2020-07-18 11:58:46 +02:00
sceneModel.markAllAsRead()
} label: {
2020-07-14 20:53:23 +02:00
AppAssets.markAllAsReadImage
}
2020-07-18 11:58:46 +02:00
.disabled(sceneModel.markAllAsReadButtonState == nil)
.help("Mark All As Read")
}
2020-07-05 22:11:45 +02:00
ToolbarItem(placement: .bottomBar) {
Spacer()
}
#endif
}
}
}