omnivore/apple/Sources/ShareExtension/ShareExtensionViewController.swift

78 lines
2 KiB
Swift
Raw Normal View History

2022-02-24 23:07:32 +00:00
import App
2023-10-30 02:33:56 +00:00
import Services
import SwiftUI
2022-02-11 17:24:33 +00:00
import Utils
import Views
2022-02-11 17:24:33 +00:00
#if os(iOS)
import UIKit
@objc(ShareExtensionViewController)
final class ShareExtensionViewController: UIViewController {
2023-10-30 02:33:56 +00:00
let labelsViewModel = LabelsViewModel()
let viewModel = ShareExtensionViewModel()
2022-02-11 17:24:33 +00:00
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .clear
2023-10-30 02:33:56 +00:00
NotificationCenter.default.addObserver(
forName: Notification.Name("ShowAddNoteSheet"),
object: nil,
queue: OperationQueue.main
) { _ in
self.openSheet(AnyView(AddNoteSheet(viewModel: self.viewModel)))
}
2023-10-30 02:33:56 +00:00
NotificationCenter.default.addObserver(
forName: Notification.Name("ShowEditLabelsSheet"),
object: nil,
queue: OperationQueue.main
) { _ in
self.openSheet(AnyView(EditLabelsSheet(viewModel: self.viewModel, labelsViewModel: self.labelsViewModel)))
}
2023-10-30 11:16:47 +00:00
NotificationCenter.default.addObserver(
forName: Notification.Name("ShowEditInfoSheet"),
object: nil,
queue: OperationQueue.main
) { _ in
self.openSheet(AnyView(EditInfoSheet(viewModel: self.viewModel)))
}
2022-02-11 17:24:33 +00:00
embed(
2023-10-30 02:33:56 +00:00
childViewController: UIViewController.makeShareExtensionController(
viewModel: viewModel,
labelsViewModel: labelsViewModel,
extensionContext: extensionContext
),
heightRatio: 0.60
2022-02-11 17:24:33 +00:00
)
}
2023-10-30 02:33:56 +00:00
func openSheet(_ rootView: AnyView) {
let hostingController = UIHostingController(rootView: rootView)
present(hostingController, animated: true, completion: nil)
}
2022-02-11 17:24:33 +00:00
}
#elseif os(macOS)
import Cocoa
class ShareViewController: NSViewController {
override func loadView() {
view = NSView(frame: NSRect(x: 0, y: 0, width: 400, height: 600))
2022-02-11 17:24:33 +00:00
}
override func viewDidLoad() {
super.viewDidLoad()
embed(
childViewController: NSViewController.makeShareExtensionController(extensionContext: extensionContext)
)
}
}
#endif