Files
oai-swift/oAI/oAIApp.swift

60 lines
1.6 KiB
Swift

//
// oAIApp.swift
// oAI
//
// Main app entry point
//
import SwiftUI
#if os(macOS)
import AppKit
#endif
@main
struct oAIApp: App {
@State private var chatViewModel = ChatViewModel()
@State private var showAbout = false
var body: some Scene {
WindowGroup {
ContentView()
.environment(chatViewModel)
.preferredColorScheme(.dark)
.sheet(isPresented: $showAbout) {
AboutView()
}
}
#if os(macOS)
.windowStyle(.hiddenTitleBar)
.windowToolbarStyle(.unified)
.defaultSize(width: 1024, height: 800)
.windowResizability(.contentMinSize)
.commands {
CommandGroup(replacing: .appInfo) {
Button("About oAI") {
showAbout = true
}
}
CommandGroup(replacing: .help) {
Button("oAI Help") {
openHelp()
}
.keyboardShortcut("?", modifiers: .command)
}
}
#endif
}
#if os(macOS)
private func openHelp() {
if let helpBookURL = Bundle.main.url(forResource: "oAI.help", withExtension: nil) {
NSWorkspace.shared.open(helpBookURL.appendingPathComponent("Contents/Resources/en.lproj/index.html"))
} else {
// Fallback to Apple Help if help book not found
NSHelpManager.shared.openHelpAnchor("", inBook: Bundle.main.object(forInfoDictionaryKey: "CFBundleHelpBookName") as? String)
}
}
#endif
}