NetNewsWire/Mac/Preferences/Accounts/AccountsAddCloudKitWindowController.swift
2024-05-05 17:23:54 -07:00

55 lines
1.4 KiB
Swift

//
// AccountsAddCloudKitWindowController.swift
// NetNewsWire
//
// Created by Maurice Parker on 3/18/20.
// Copyright © 2020 Ranchero Software. All rights reserved.
//
import Foundation
import Account
enum AccountsAddCloudKitWindowControllerError: LocalizedError {
case iCloudDriveMissing
var errorDescription: String? {
return NSLocalizedString("Unable to add iCloud Account. Please make sure you have iCloud and iCloud enabled in System Preferences.", comment: "Unable to add iCloud Account.")
}
}
final class AccountsAddCloudKitWindowController: NSWindowController {
private weak var hostWindow: NSWindow?
convenience init() {
self.init(windowNibName: NSNib.Name("AccountsAddCloudKit"))
}
override func windowDidLoad() {
super.windowDidLoad()
}
// MARK: API
func runSheetOnWindow(_ hostWindow: NSWindow) async -> NSApplication.ModalResponse {
self.hostWindow = hostWindow
return await hostWindow.beginSheet(window!)
}
// MARK: Actions
@IBAction func cancel(_ sender: Any) {
hostWindow!.endSheet(window!, returnCode: NSApplication.ModalResponse.cancel)
}
@IBAction func create(_ sender: Any) {
guard FileManager.default.ubiquityIdentityToken != nil else {
NSApplication.shared.presentError(AccountsAddCloudKitWindowControllerError.iCloudDriveMissing)
return
}
let _ = AccountManager.shared.createAccount(type: .cloudKit)
hostWindow!.endSheet(window!, returnCode: NSApplication.ModalResponse.OK)
}
}