60 lines
1.6 KiB
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
|
|
}
|