//
//  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) {
	}
	
}