70 lines
1.8 KiB
Swift
70 lines
1.8 KiB
Swift
import App
|
|
import Services
|
|
import SwiftUI
|
|
import Utils
|
|
import Views
|
|
|
|
#if os(iOS)
|
|
import UIKit
|
|
|
|
@objc(ShareExtensionViewController)
|
|
final class ShareExtensionViewController: UIViewController {
|
|
let labelsViewModel = LabelsViewModel()
|
|
let viewModel = ShareExtensionViewModel()
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
view.backgroundColor = .clear
|
|
|
|
NotificationCenter.default.addObserver(
|
|
forName: Notification.Name("ShowAddNoteSheet"),
|
|
object: nil,
|
|
queue: OperationQueue.main
|
|
) { _ in
|
|
self.openSheet(AnyView(AddNoteSheet(viewModel: self.viewModel)))
|
|
}
|
|
|
|
NotificationCenter.default.addObserver(
|
|
forName: Notification.Name("ShowEditLabelsSheet"),
|
|
object: nil,
|
|
queue: OperationQueue.main
|
|
) { _ in
|
|
self.openSheet(AnyView(EditLabelsSheet(viewModel: self.viewModel, labelsViewModel: self.labelsViewModel)))
|
|
}
|
|
|
|
embed(
|
|
childViewController: UIViewController.makeShareExtensionController(
|
|
viewModel: viewModel,
|
|
labelsViewModel: labelsViewModel,
|
|
extensionContext: extensionContext
|
|
),
|
|
heightRatio: 0.60
|
|
)
|
|
}
|
|
|
|
func openSheet(_ rootView: AnyView) {
|
|
let hostingController = UIHostingController(rootView: rootView)
|
|
|
|
present(hostingController, animated: true, completion: nil)
|
|
}
|
|
}
|
|
|
|
#elseif os(macOS)
|
|
|
|
import Cocoa
|
|
|
|
class ShareViewController: NSViewController {
|
|
override func loadView() {
|
|
view = NSView(frame: NSRect(x: 0, y: 0, width: 400, height: 600))
|
|
}
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
embed(
|
|
childViewController: NSViewController.makeShareExtensionController(extensionContext: extensionContext)
|
|
)
|
|
}
|
|
}
|
|
|
|
#endif
|