PadXcode-iPad/PadXcodeApp.swift

41 lines
1.5 KiB
Swift
Raw Normal View History

2026-04-12 00:46:30 -07:00
import SwiftUI
import Foundation
@main
struct PadXcodeApp: App {
@StateObject private var daemonConfig = DaemonConfiguration()
@StateObject private var projectStore = ProjectStore()
@StateObject private var editorState = EditorState()
@StateObject private var gitStore = GitStore()
@StateObject private var lspClient: LSPClient
private let gitService: GitService
private let gitCallbackHandler: GitCallbackHandler
init() {
let config = DaemonConfiguration()
let apiKey = UserDefaults.standard.string(forKey: "workingCopyAPIKey") ?? ""
let store = GitStore()
_daemonConfig = StateObject(wrappedValue: config)
_lspClient = StateObject(wrappedValue: LSPClient(config: config))
_gitStore = StateObject(wrappedValue: store)
gitService = GitService(apiKey: apiKey)
gitCallbackHandler = GitCallbackHandler(store: store)
}
var body: some Scene {
WindowGroup {
ContentView(gitService: gitService)
.environmentObject(daemonConfig)
.environmentObject(projectStore)
.environmentObject(editorState)
.environmentObject(gitStore)
.environmentObject(lspClient)
.onOpenURL { url in
Task { @MainActor in gitCallbackHandler.handle(url: url) }
}
}
.commands { CommandGroup(replacing: .undoRedo) { } }
}
}