Pass delete/archive/view handlers into audio player

This commit is contained in:
Jackson Harper
2023-12-23 16:12:33 +08:00
parent 7404386773
commit 3aca91f083
5 changed files with 46 additions and 9 deletions

View File

@ -68,7 +68,7 @@ import Views
action: {
addLinkPresented = true
},
label: { Label("Add Link", systemImage: "plus") }
label: { Label("Add link", systemImage: "plus") }
)
}

View File

@ -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)

View File

@ -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

View File

@ -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) {

View File

@ -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?