NetNewsWire/Multiplatform/macOS/Article/SharingServiceView.swift

57 lines
1.4 KiB
Swift

//
// SharingServiceView.swift
// Multiplatform macOS
//
// Created by Maurice Parker on 7/14/20.
// Copyright © 2020 Ranchero Software. All rights reserved.
//
import SwiftUI
import AppKit
import Articles
class SharingServiceController: NSViewController {
var sharingServicePickerDelegate: SharingServicePickerDelegate? = nil
var articles = [Article]()
var completion: (() -> Void)? = nil
override func loadView() {
view = NSView()
}
override func viewDidAppear() {
guard let anchor = view.superview?.superview else { return }
sharingServicePickerDelegate = SharingServicePickerDelegate(self.view.window, completion: completion)
let sortedArticles = articles.sortedByDate(.orderedAscending)
let items = sortedArticles.map { ArticlePasteboardWriter(article: $0) }
let sharingServicePicker = NSSharingServicePicker(items: items)
sharingServicePicker.delegate = sharingServicePickerDelegate
sharingServicePicker.show(relativeTo: anchor.bounds, of: anchor, preferredEdge: .minY)
}
}
struct SharingServiceView: NSViewControllerRepresentable {
var articles: [Article]
@Binding var showing: Bool
func makeNSViewController(context: Context) -> SharingServiceController {
let controller = SharingServiceController()
controller.articles = articles
controller.completion = {
showing = false
}
return controller
}
func updateNSViewController(_ nsViewController: SharingServiceController, context: Context) {
}
}