Pass delete/archive/view handlers into audio player
This commit is contained in:
@ -68,7 +68,7 @@ import Views
|
||||
action: {
|
||||
addLinkPresented = true
|
||||
},
|
||||
label: { Label("Add Link", systemImage: "plus") }
|
||||
label: { Label("Add link", systemImage: "plus") }
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -25,9 +25,11 @@ struct LibraryAddFeedView: View {
|
||||
var body: some View {
|
||||
Group {
|
||||
#if os(iOS)
|
||||
innerBody
|
||||
.navigationTitle("Add Feed URL")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
Form {
|
||||
innerBody
|
||||
.navigationTitle("Add Feed URL")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
#else
|
||||
innerBody
|
||||
#endif
|
||||
@ -80,7 +82,7 @@ struct LibraryAddFeedView: View {
|
||||
}
|
||||
|
||||
var innerBody: some View {
|
||||
List {
|
||||
Group {
|
||||
Section {
|
||||
TextField("Feed or site URL", text: $feedURL)
|
||||
#if os(iOS)
|
||||
|
||||
@ -24,6 +24,8 @@ struct LibraryTabView: View {
|
||||
|
||||
@State var showExpandedAudioPlayer = false
|
||||
|
||||
private let syncManager = LibrarySyncManager()
|
||||
|
||||
@MainActor
|
||||
public init() {
|
||||
UITabBar.appearance().isHidden = true
|
||||
@ -53,7 +55,16 @@ struct LibraryTabView: View {
|
||||
)
|
||||
)
|
||||
|
||||
private let syncManager = LibrarySyncManager()
|
||||
var currentViewModel: HomeFeedViewModel? {
|
||||
switch selectedTab {
|
||||
case "inbox":
|
||||
return inboxViewModel
|
||||
case "following":
|
||||
return followingViewModel
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 0) {
|
||||
@ -91,7 +102,23 @@ struct LibraryTabView: View {
|
||||
.padding(0)
|
||||
}
|
||||
.fullScreenCover(isPresented: $showExpandedAudioPlayer) {
|
||||
ExpandedAudioPlayer()
|
||||
ExpandedAudioPlayer(
|
||||
delete: {
|
||||
showExpandedAudioPlayer = false
|
||||
audioController.stop()
|
||||
currentViewModel?.removeLibraryItem(dataService: dataService, objectID: $0)
|
||||
},
|
||||
archive: {
|
||||
showExpandedAudioPlayer = false
|
||||
audioController.stop()
|
||||
currentViewModel?.setLinkArchived(dataService: dataService, objectID: $0, archived: true)
|
||||
},
|
||||
viewArticle: { itemID in
|
||||
if let article = try? dataService.viewContext.existingObject(with: itemID) as? Models.LibraryItem {
|
||||
currentViewModel?.pushFeedItem(item: article)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
.navigationBarHidden(true)
|
||||
.onReceive(NSNotification.performSyncPublisher) { _ in
|
||||
|
||||
@ -453,7 +453,15 @@ struct WebReaderContainerView: View {
|
||||
.ignoresSafeArea(.all, edges: .bottom)
|
||||
}
|
||||
.fullScreenCover(isPresented: $showExpandedAudioPlayer) {
|
||||
ExpandedAudioPlayer()
|
||||
ExpandedAudioPlayer(delete: { _ in
|
||||
showExpandedAudioPlayer = false
|
||||
delete()
|
||||
}, archive: { _ in
|
||||
showExpandedAudioPlayer = false
|
||||
archive()
|
||||
}, viewArticle: { _ in
|
||||
showExpandedAudioPlayer = false
|
||||
})
|
||||
}
|
||||
#endif
|
||||
.alert(errorAlertMessage ?? LocalText.readerError, isPresented: $showErrorAlertMessage) {
|
||||
|
||||
@ -32,7 +32,7 @@ public struct LinkedItemAudioProperties {
|
||||
public let itemID: String
|
||||
public let objectID: NSManagedObjectID
|
||||
public let title: String
|
||||
public let isArchived: Bool
|
||||
public var isArchived: Bool
|
||||
public let byline: String?
|
||||
public let imageURL: URL?
|
||||
public let language: String?
|
||||
|
||||
Reference in New Issue
Block a user