#if os(macOS) import SwiftUI import DocsKit struct DocsWindowCommands: Commands { let windows: DocsWindows @FocusedValue(\.docsWindowAccount) private var account @FocusedValue(\.docsAccountActions) private var accountActions @Environment(\.openWindow) private var openWindow var body: some Commands { CommandGroup(after: .appSettings) { Button(docsMacString("Accounts")) { if let action = accountActions?.accounts { action() } else { windows.accountsRequested = true; openWindow(id: "home") } }.disabled(accountActions?.canManage == false) Button(docsMacString("Sign out")) { accountActions?.signOut() } .disabled(accountActions?.canSignOut != true) Divider() } CommandGroup(replacing: .newItem) { Button(docsMacString("New document")) { if let entry = windows.entries.first(where: { $0.account == account && $0.isOpen }) { let id = windows.reserveDraft(account: entry.account, client: entry.client) openWindow(id: "document", value: id) } else { windows.createRequested = true openWindow(id: "home") } }.keyboardShortcut("n") Menu(docsMacString("Recent")) { ForEach(windows.entries.filter { $0.account == (account ?? windows.activeAccount) }.prefix(20)) { entry in Button(entry.title) { windows.setOpen(entry.id, true) openWindow(id: "document", value: entry.id) } } if !windows.entries.contains(where: { $0.account == (account ?? windows.activeAccount) }) { Text(docsMacString("No recent documents")) } } Divider() DocsDocumentMenu() } } } #endif