mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-09-23 04:00:00 +00:00
add add-new-feed for manager
This commit is contained in:
parent
22aa840b0f
commit
d9438cfe15
2 changed files with 25 additions and 7 deletions
|
@ -16,6 +16,9 @@ public struct RSSAddNewFeed: View {
|
||||||
@State private var feed: RSSFeed? = nil
|
@State private var feed: RSSFeed? = nil
|
||||||
@State private var downloadingTask: Task<(), Never>? = nil
|
@State private var downloadingTask: Task<(), Never>? = nil
|
||||||
|
|
||||||
|
public enum Context { case manager, sheet }
|
||||||
|
let context: Context
|
||||||
|
|
||||||
public var body: some View {
|
public var body: some View {
|
||||||
NavigationStack {
|
NavigationStack {
|
||||||
Form {
|
Form {
|
||||||
|
@ -35,12 +38,14 @@ public struct RSSAddNewFeed: View {
|
||||||
.navigationTitle("rss.addNewFeed.title")
|
.navigationTitle("rss.addNewFeed.title")
|
||||||
.navigationBarTitleDisplayMode(.inline)
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
.toolbar {
|
.toolbar {
|
||||||
ToolbarItem(placement: .topBarLeading) {
|
if self.context == .sheet {
|
||||||
Button {
|
ToolbarItem(placement: .topBarLeading) {
|
||||||
dismiss()
|
Button {
|
||||||
feed?.managedObjectContext?.rollback()
|
dismiss()
|
||||||
} label: {
|
feed?.managedObjectContext?.rollback()
|
||||||
Image(systemName: "xmark")
|
} label: {
|
||||||
|
Image(systemName: "xmark")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +82,9 @@ public struct RSSAddNewFeed: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public init() {}
|
public init(context: Context = .sheet) {
|
||||||
|
self.context = context
|
||||||
|
}
|
||||||
|
|
||||||
private struct IndicatorView: View {
|
private struct IndicatorView: View {
|
||||||
@Binding var state: MachineState
|
@Binding var state: MachineState
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
import DesignSystem
|
import DesignSystem
|
||||||
|
import Env
|
||||||
|
|
||||||
public struct RSSFeedManager: View {
|
public struct RSSFeedManager: View {
|
||||||
@Environment(\.dismiss) private var dismiss
|
@Environment(\.dismiss) private var dismiss
|
||||||
|
@ -14,6 +15,8 @@ public struct RSSFeedManager: View {
|
||||||
@FetchRequest(sortDescriptors: [SortDescriptor(\.title, order: .reverse)])
|
@FetchRequest(sortDescriptors: [SortDescriptor(\.title, order: .reverse)])
|
||||||
private var feeds: FetchedResults<RSSFeed>
|
private var feeds: FetchedResults<RSSFeed>
|
||||||
|
|
||||||
|
@State private var routerPath = RouterPath()
|
||||||
|
|
||||||
public var body: some View {
|
public var body: some View {
|
||||||
NavigationStack{
|
NavigationStack{
|
||||||
List {
|
List {
|
||||||
|
@ -39,6 +42,14 @@ public struct RSSFeedManager: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ToolbarItem(placement: .navigationBarTrailing) {
|
||||||
|
NavigationLink {
|
||||||
|
RSSAddNewFeed(context: .manager)
|
||||||
|
} label: {
|
||||||
|
Image(systemName: "plus")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ToolbarItem(placement: .topBarTrailing) {
|
ToolbarItem(placement: .topBarTrailing) {
|
||||||
Button("rss.rssFeedManager.action.done") {
|
Button("rss.rssFeedManager.action.done") {
|
||||||
dismiss()
|
dismiss()
|
||||||
|
|
Loading…
Reference in a new issue